Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions eng/pipelines/common/clone-checkout-bundle-step.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
steps:
Comment thread
dagood marked this conversation as resolved.
Outdated
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
$(setScriptToEchoAndFailOnNonZero)
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
2 changes: 2 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,6 +135,8 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}

# WebAssembly

- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
- template: xplat-setup.yml
parameters:
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
variables:
Comment thread
safern marked this conversation as resolved.
- name: isOfficialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
9 changes: 7 additions & 2 deletions eng/pipelines/common/xplat-setup.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ jobs:
value: '\'
- name: _msbuildCommand
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''

- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension
Expand All@@ -39,7 +41,10 @@ jobs:
value: '/'
- name: _msbuildCommand
value: ./eng/common/msbuild.sh --warnaserror false --ci

# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need separate Windows vs. Linux versions here?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have them, it's just a no-op right now on Win a few lines up:

- name: setScriptToEchoAndFailOnNonZero
value: ''

Don't know if it's possible to do this (or necessary) in batch.


- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
- name: ROOTFS_DIR
Expand All@@ -48,6 +53,7 @@ jobs:
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}
platform: ${{ parameters.platform }}

${{ if ne(parameters.container, '') }}:
${{ if eq(parameters.container.registry, 'mcr') }}:
Expand DownExpand Up@@ -94,4 +100,3 @@ jobs:
${{ if ne(parameters.helixQueuesTemplate, '') }}:
jobTemplate: ${{ parameters.jobTemplate }}
jobParameters: ${{ parameters.jobParameters }}
platform: ${{ parameters.platform }}
12 changes: 1 addition & 11 deletions eng/pipelines/coreclr/templates/xplat-job.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,6 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- checkout: none
clean: true

- download: current
artifact: Checkout_bundle
displayName: Download Checkout.bundle

- script: |
git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
git remote set-url origin $(Build.Repository.Uri)
displayName: Clone the repository from Checkout.bundle
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml

- ${{ parameters.steps }}
230 changes: 17 additions & 213 deletions eng/pipelines/installer/azure-pipelines.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,216 +44,20 @@ pr:

name: $(Date:yyyyMMdd)$(Rev:.r)

variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)

# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation

# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test

# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation

- name: pipelinesPath
value: /eng/pipelines/installer
- name: buildScriptFileName
value: installer

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64

- template: ${{ variables['pipelinesPath'] }}/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: ${{ variables['pipelinesPath'] }}/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64

# Windows x86
- template: ${{ variables['pipelinesPath'] }}/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86

- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: ${{ variables['pipelinesPath'] }}/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017

- template: ${{ variables['pipelinesPath'] }}/stages/publish.yml
parameters:
pipelinesPath: ${{ variables['pipelinesPath'] }}
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:

- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false

- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true

- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true

- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true

- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: NetCore_Tools_Validation_Channel_Id
storage: dev/validation
public: true
jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

#
# Build and Test
#
- template: /eng/pipelines/installer/installer-matrix.yml
parameters:
strategy:
matrix:
debug:
_BuildConfig: Debug
release:
_BuildConfig: Release
Loading