diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml
index 66f4ddf9820080..fa674a5998aa21 100644
--- a/eng/pipelines/common/platform-matrix.yml
+++ b/eng/pipelines/common/platform-matrix.yml
@@ -159,6 +159,22 @@ jobs:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }}
+- ${{ if containsValue(parameters.platforms, 'WebAssembly_wasm') }}:
+ - template: xplat-setup.yml
+ parameters:
+ jobTemplate: ${{ parameters.jobTemplate }}
+ helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
+ osGroup: WebAssembly
+ archType: wasm
+ platform: WebAssembly_wasm
+ container:
+ image: ubuntu-16.04-a50a721-20191023143845
+ registry: mcr
+ jobParameters:
+ stagedBuild: ${{ parameters.stagedBuild }}
+ buildConfig: ${{ parameters.buildConfig }}
+ ${{ insert }}: ${{ parameters.jobParameters }}
+
# FreeBSD
# FreeBSD machines are currently offline. Re-enable in the official build when
diff --git a/eng/pipelines/libraries/.azure-ci.yml b/eng/pipelines/libraries/.azure-ci.yml
index af7dc48acb068b..64b7e8919b940d 100644
--- a/eng/pipelines/libraries/.azure-ci.yml
+++ b/eng/pipelines/libraries/.azure-ci.yml
@@ -22,7 +22,6 @@ trigger:
- src/coreclr/*
- eng/pipelines/coreclr/*
- eng/pipelines/installer/*
- - eng/pipelines/common/*
pr:
branches:
@@ -43,30 +42,6 @@ pr:
- src/coreclr/*
- eng/pipelines/coreclr/*
- eng/pipelines/installer/*
- - eng/pipelines/common/*
-
-resources:
- containers:
- - container: centos7_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-f39df28-20191023143754
-
- - container: centos6_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-f39df28-20191023143802
-
- - container: alpine_39_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
-
- - container: alpine_37_arm64_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20191023143847
-
- - container: ubuntu_1604_arm64_cross_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20191023143847
-
- - container: ubuntu_1604_arm_cross_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20191023143847
-
- - container: ubuntu_1604
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-a50a721-20191023143845
variables:
- template: variables.yml
@@ -83,55 +58,96 @@ variables:
- name: _DotNetValidationArtifactsCategory
value: .NETCore
-stages:
- # Windows legs
- - template: ${{ variables['pipelinesPath'] }}/windows.yml
- parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
-
- # Linux legs
- - template: ${{ variables['pipelinesPath'] }}/linux.yml
- parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
+jobs:
+ - template: /eng/pipelines/common/checkout-job.yml
- # MacOS legs
- - template: ${{ variables['pipelinesPath'] }}/macos.yml
+ - template: /eng/pipelines/common/platform-matrix.yml
parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
-
- # FreeBSD leg is only for official builds
- # - template: ${{ variables['pipelinesPath'] }}/freebsd.yml
- # parameters:
- # isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- # fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
-
- # Publish and validation steps. Only run in official builds
- - ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- - template: ${{ variables['pipelinesPath'] }}/pre-publish.yml
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Release
+ platforms:
+ - Linux_rhel6_x64
+ - Windows_NT_x86
+ - ${{ if eq(variables['isFullMatrix'], true) }}:
+ - OSX_x64
+ - Windows_NT_x64
+ - Linux_x64
+ - Linux_arm
+ - Linux_arm64
+ - Linux_musl_x64
+ - Linux_musl_arm64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ isFullMatrix: ${{ variables['isFullMatrix'] }}
+ framework: netcoreapp
+ ${{ if eq(variables['isOfficialBuild'], false) }}:
+ runTests: true
+ testScope: innerloop
+
+ - ${{ if eq(variables['isFullMatrix'], false) }}:
+ - template: /eng/pipelines/common/platform-matrix.yml
parameters:
- dependsOn:
- - WindowsStage
- - LinuxStage
- - MacOSStage
- # - FreeBSD
-
- - template: eng\common\templates\post-build\post-build.yml
- parameters:
- validateDependsOn:
- - PrePublish
- enableSymbolValidation: false # https://github.com/dotnet/arcade/issues/2871
- SDLValidationParameters:
- enable: true
- params: ' -SourceToolsList @("policheck","credscan")
- -TsaInstanceURL "$(TsaInstanceURL)"
- -TsaProjectName "$(TsaProjectName)"
- -TsaNotificationEmail "$(TsaNotificationEmail)"
- -TsaCodebaseAdmin "$(TsaCodebaseAdmin)"
- -TsaBugAreaPath "$(TsaBugAreaPath)"
- -TsaIterationPath "$(TsaIterationPath)"
- -TsaRepositoryName "CoreFX"
- -TsaCodebaseName "CoreFX"
- -TsaPublish $True'
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Debug
+ platforms:
+ - Windows_NT_x64
+ - OSX_x64
+ - Linux_x64
+ - Linux_musl_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ isFullMatrix: ${{ variables['isFullMatrix'] }}
+ testScope: innerloop
+ framework: netcoreapp
+ runTests: true
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ ${{ if eq(variables['isFullMatrix'], false) }}:
+ buildConfig: Debug
+ ${{ if eq(variables['isFullMatrix'], true) }}:
+ buildConfig: Release
+ platforms:
+ - WebAssembly_wasm
+ - ${{ if eq(variables['isFullMatrix'], false) }}:
+ - Linux_arm
+ - Linux_arm64
+ - Linux_musl_arm64
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ framework: netcoreapp
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Release
+ platforms:
+ - Windows_NT_x86
+ - ${{ if eq(variables['isFullMatrix'], true) }}:
+ - Windows_NT_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ framework: netfx
+ ${{ if eq(variables['isOfficialBuild'], false) }}:
+ runTests: true
+ testScope: innerloop
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ ${{ if eq(variables['isFullMatrix'], false) }}:
+ buildConfig: Debug
+ ${{ if eq(variables['isFullMatrix'], true) }}:
+ buildConfig: Release
+ platforms:
+ - Windows_NT_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ framework: allConfigurations
+ ${{ if eq(variables['isOfficialBuild'], false) }}:
+ runTests: true
diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml
new file mode 100644
index 00000000000000..e345b8973f81ff
--- /dev/null
+++ b/eng/pipelines/libraries/base-job.yml
@@ -0,0 +1,105 @@
+parameters:
+ buildConfig: ''
+ osGroup: ''
+ archType: ''
+ osSubgroup: ''
+ framework: ''
+ isOfficialBuild: false
+ timeoutInMinutes: 150
+ container: ''
+ steps: []
+ dependsOn: []
+ variables: {}
+ name: ''
+ displayName: ''
+ testScope: ''
+ pool: ''
+ stepName: ''
+
+jobs:
+ - template: /eng/common/templates/job/job.yml
+ parameters:
+ name: ${{ format('libraries_{0}_{1}_{2}{3}_{4}_{5}', parameters.stepName, parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ ${{ if eq(parameters.framework, 'netcoreapp') }}:
+ displayName: ${{ format('{0} {1}{2} {3} {4}', parameters.stepName, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ ${{ if ne(parameters.framework, 'netcoreapp') }}:
+ displayName: ${{ format('{0} {1} {2} {3} {4}', parameters.stepName, parameters.osGroup, parameters.framework, parameters.archType, parameters.buildConfig) }}
+
+ enableTelemetry: ${{ parameters.isOfficialBuild }} # TODO: figure out if it's needed
+ container: ${{ parameters.container }}
+ helixRepo: dotnet/runtime
+ pool: ${{ parameters.pool }}
+ variables:
+ - _BuildConfig: ${{ parameters.buildConfig }}
+ - _msbuildCommonParameters: ''
+ - _stripSymbolsArg: ''
+ - _runtimeOSArg: ''
+ - _portableArg: ''
+ - _finalFrameworkArg: -framework ${{ parameters.framework }}
+ - _buildScript: $(buildScriptFileName)$(scriptExt)
+ - _warnAsErrorArg: ''
+ - _testScopeArg: ''
+
+ - ${{ if ne(parameters.testScope, '') }}:
+ - _testScopeArg: -testscope ${{ parameters.testScope }}
+
+ - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_rhel6')) }}:
+ - _runtimeOSArg: /p:RuntimeOS=rhel.6
+ - _portableArg: /p:PortableBuild=false
+
+ - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}:
+ - _runtimeOSArg: /p:RuntimeOS=linux-musl
+
+ - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, ''), eq(parameters.archType, 'arm')) }}:
+ - _runtimeOSArg: /p:RuntimeOS=ubuntu.16.04
+
+ - ${{ if and(or(eq(parameters.osGroup, 'Linux'), eq(parameters.osGroup, 'WebAssembly')), ne(parameters.container, '')) }}:
+ - _warnAsErrorArg: '-warnAsError false'
+
+ - ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
+ - _runtimeOSArg: -os ${{ parameters.osGroup }}
+
+ - ${{ if eq(parameters.framework, 'allConfigurations' ) }}:
+ - _finalFrameworkArg: -allConfigurations
+
+ - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ - _msbuildCommonParameters: /p:OfficialBuildId=$(Build.BuildNumber)
+
+ # Windows variables
+ - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
+ - _msbuildCommand: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
+ - _runtimeOSArg: /p:RuntimeOS=win10
+
+ # Non-Windows variables
+ - ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
+ - _msbuildCommand: ./eng/common/msbuild.sh --warnaserror false --ci
+ - _buildScript: ./$(buildScriptFileName)$(scriptExt)
+ - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ - _stripSymbolsArg: -stripSymbols
+
+ - _buildArguments: -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_stripSymbolsArg) $(_testScopeArg) $(_warnAsErrorArg) $(_runtimeOSArg) $(_portableArg) $(_msbuildCommonParameters)
+ - ${{ parameters.variables }}
+
+ dependsOn:
+ - checkout
+ - ${{ parameters.dependsOn }}
+ workspace:
+ clean: all
+
+ enablePublishBuildArtifacts: true
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+
+ 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
+
+ - ${{ parameters.steps }}
diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml
new file mode 100644
index 00000000000000..0ae7cc6093d34b
--- /dev/null
+++ b/eng/pipelines/libraries/build-job.yml
@@ -0,0 +1,128 @@
+parameters:
+ buildConfig: ''
+ osGroup: ''
+ osSubgroup: ''
+ archType: ''
+ framework: netcoreapp
+ isOfficialBuild: false
+ timeoutInMinutes: 150
+ preBuildSteps: []
+ container: ''
+ variables: {}
+ pool: ''
+ runTests: false
+ testScope: ''
+
+jobs:
+ - template: /eng/pipelines/libraries/base-job.yml
+ parameters:
+ buildConfig: ${{ parameters.buildConfig }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
+ archType: ${{ parameters.archType }}
+ framework: ${{ parameters.framework }}
+ isOfficialBuild: ${{ parameters.isOfficialBuild }}
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ preBuildSteps: ${{ parameters.preBuildSteps }}
+ container: ${{ parameters.container }}
+ pool: ${{ parameters.pool }}
+ testScope: ${{ parameters.testScope }}
+ stepName: Build
+
+ variables:
+ - _skipTestRestoreArg: /p:SkipTestRestore=true
+ - _buildAction: -build
+ - ${{ parameters.variables }}
+ - ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
+ - EMSDK_PATH: $(Build.BinariesDirectory)/emsdk
+ - ${{ if eq(parameters.runTests, true) }}:
+ - _buildAction: -build -buildtests /p:ArchiveTests=true
+ - ${{ if ne(parameters.framework, 'allConfigurations') }}:
+ - _skipTestRestoreArg: /p:SkipTestRestore=false
+
+ steps:
+ - script: $(_buildScript) -restore $(_buildArguments) $(_skipTestRestoreArg)
+ displayName: Restore
+
+ - ${{ if eq(parameters.isOfficialBuild, true) }}:
+ - task: DotNetCoreCLI@2
+ displayName: Restore internal tools
+ condition: and(succeeded(), ne(variables['_skipRestoreInternalTools'], 'true'))
+ inputs:
+ command: restore
+ feedsToUse: config
+ projects: 'eng/common/internal/Tools.csproj'
+ nugetConfigPath: 'eng/internal/NuGet.config'
+ restoreDirectory: '$(Build.SourcesDirectory)\.packages'
+ verbosityRestore: 'normal'
+ externalFeedCredentials: 'dotnet-core-internal-tooling'
+
+ - ${{ if eq(parameters.osGroup, 'OSX') }}:
+ - script: |
+ brew install pkgconfig openssl
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/
+ displayName: Install Build Dependencies
+
+ - ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
+ - script: |
+ EMSCRIPTEN_VERSION=1.38.47
+ git clone https://github.com/emscripten-core/emsdk.git $(EMSDK_PATH)
+ cd $(EMSDK_PATH)
+ ./emsdk install ${EMSCRIPTEN_VERSION}-upstream
+ ./emsdk activate --embedded ${EMSCRIPTEN_VERSION}-upstream
+ displayName: Install Emscripten
+
+ - script: $(_buildScript)
+ $(_buildAction)
+ $(_buildArguments)
+ displayName: Build
+
+ - ${{ if eq(parameters.runTests, false) }}:
+ - task: CopyFiles@2
+ displayName: Prepare ref folder to publish
+ inputs:
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref
+ targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref
+
+ - task: CopyFiles@2
+ displayName: Prepare runtime folder to publish
+ inputs:
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/runtime
+ targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/runtime
+
+ - task: CopyFiles@2
+ displayName: Prepare testhost folder to publish
+ inputs:
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/testhost
+ targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/testhost
+
+ - task: CopyFiles@2
+ displayName: Prepare artifacts toolset folder to publish
+ inputs:
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/toolset
+ targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/toolset
+
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.ArtifactStagingDirectory)/artifacts
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ displayName: Build Assets
+
+ - ${{ if eq(parameters.runTests, true) }}:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ targetOS: ${{ parameters.osGroup }}
+ archGroup: ${{ parameters.archType }}
+ configuration: ${{ parameters.buildConfig }}
+ helixQueues: ${{ join('+', parameters.helixQueues) }}
+ msbuildScript: $(_msbuildCommand)
+ framework: ${{ parameters.framework }}
+ testScope: ${{ parameters.testScope }}
+ creator: dotnet-bot
+ helixToken: ''
diff --git a/eng/pipelines/libraries/build-test-job.yml b/eng/pipelines/libraries/build-test-job.yml
new file mode 100644
index 00000000000000..a847b40cf7e235
--- /dev/null
+++ b/eng/pipelines/libraries/build-test-job.yml
@@ -0,0 +1,65 @@
+parameters:
+ buildConfig: ''
+ osGroup: ''
+ osSubgroup: ''
+ archType: ''
+ framework: netcoreapp
+ isOfficialBuild: false
+ timeoutInMinutes: 150
+ container: ''
+ publishTestArtifacs: true
+ pool: ''
+ testScope: ''
+ variables: {}
+ runTests: false
+
+jobs:
+ - template: /eng/pipelines/libraries/base-job.yml
+ parameters:
+ buildConfig: ${{ parameters.buildConfig }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
+ archType: ${{ parameters.archType }}
+ framework: ${{ parameters.framework }}
+ isOfficialBuild: ${{ parameters.isOfficialBuild }}
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ container: ${{ parameters.container }}
+ pool: ${{ parameters.pool }}
+ testScope: ${{ parameters.testScope }}
+ stepName: Test
+
+ dependsOn:
+ - ${{ format('libraries_Build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+
+ variables:
+ - _archiveTestsParameter: /p:ArchiveTests=true
+ - _skipTestRestoreArg: /p:SkipTestRestore=false
+
+ - ${{ parameters.variables }}
+
+ steps:
+ - template: /eng/pipelines/common/download-artifact-step.yml
+ parameters:
+ displayName: Build Assets
+ artifactName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ artifactFileName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}$(archiveExtension)
+ unpackFolder: $(Build.SourcesDirectory)/artifacts
+
+ - script: $(_buildScript) -restore $(_buildArguments) $(_skipTestRestoreArg)
+ displayName: Restore
+
+ - script: $(_buildScript)
+ -buildtests
+ $(_buildArguments)
+ $(_archiveTestsParameter)
+ displayName: Build
+
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/helix
+ includeRootFolder: true
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.archType, parameters.buildConfig) }}
+ displayName: Test Assets
diff --git a/eng/pipelines/libraries/corefx-base.yml b/eng/pipelines/libraries/corefx-base.yml
deleted file mode 100644
index aac9dbf563799f..00000000000000
--- a/eng/pipelines/libraries/corefx-base.yml
+++ /dev/null
@@ -1,217 +0,0 @@
-parameters:
- # Required: TargetOS value to know what script commands to use
- # Accepted values:
- # - Windows_NT
- # - Linux
- # - OSX
- # - FreeBSD
- targetOS: ''
-
- # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
- jobs: []
-
- # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
- # Default: false
- isOfficialBuild: false
-
- # EACH JOB SHOULD INCLUDE THE FOLLOWING PROPERTIES (ASIDE FROM THE REQUIRED ONES IN THE JOB SCHEMA)
-
- # Required: as part of the strategy matrix, the following variables should be defined
- # _BuildConfig: Debug | Release
- # _architecture: x64 | x86 | arm | arm64
- # _framework: (netcoreapp, netfx).
- # _helixQueues: Windows.Amd64 (Only needed if submitToHelix -> true.) -- Queues should be separated by + if multiple.
-
- # Required: empty | innerloop | outerloop | all
- testScope: ''
-
- # Optional: _publishTests -> Boolean -> Publish test assets to blob storage if true.
- # Default: false
- # _publishTests: true | false
-
- # Required: submitToHelix -> Boolean -> Value to know if it should submit tests payloads to helix.
-
- # Optional: buildScriptPrefix -> String -> string to append to Unix build script.
- # buildScriptPrefix: 'HOME=/home/ ' -> 'HOME=/home/ ./$(buildScriptName).sh ...'
-
- # Optional: buildExtraArguments -> String -> string to append at the end of the build arguments
- # buildExtraArguments: /p:RuntimeOS=win10 -> '$(buildScriptName).cmd ... /p:RuntimeOS=win10'
-
- # Optional: customBuildSteps -> Array -> list of steps to run instead of the common build steps.
- # customBuildSteps:
- # - script: echo Hello World
- # displayName: MyScript
-
- # Optional: preBuildSteps -> Array -> list of steps to be executed before common build steps.
- # In example, to install build dependencies, or setup an environment.
- # preBuildSteps:
- # - script: brew install cmake
- # displayName: Install Cmake
-
- # timeoutInMinutes: if a job doesn't define it, we will default it to 150 minutes
-
-jobs:
- - ${{ each job in parameters.jobs }}:
- - template: /eng/common/templates/job/job.yml
- parameters:
- variables:
-
- # pass along job variables
- - ${{ each variable in job.variables }}:
- - ${{ if ne(variable.name, '') }}:
- - name: ${{ variable.name }}
- value: ${{ variable.value }}
- - ${{ if ne(variable.group, '') }}:
- - group: ${{ variable.group }}
-
- # handle key-value variable syntax.
- # example:
- # - [key]: [value]
- - ${{ if and(eq(variable.name, ''), eq(variable.group, '')) }}:
- - ${{ each pair in variable }}:
- - name: ${{ pair.key }}
- value: ${{ pair.value }}
-
- - _msbuildCommonParameters: ''
- - _archiveTestsParameter: ''
- - _finalFrameworkArg: -framework $(_framework)
- - _testScopeArg: ''
-
- - ${{ if ne(parameters.testScope, '') }}:
- - _testScopeArg: -testscope ${{ parameters.testScope }}
-
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - _msbuildCommonParameters: /p:OfficialBuildId=$(Build.BuildNumber)
-
- - ${{ if eq(job.submitToHelix, 'true') }}:
- - _archiveTestsParameter: /p:ArchiveTests=true
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - group: DotNet-HelixApi-Access
-
- - ${{ if ne(job.frameworkArg, '') }}:
- - _finalFrameworkArg: ${{ job.frameworkArg }}
-
- - _args: -configuration $(_BuildConfig) -ci -arch $(_architecture) $(_finalFrameworkArg) $(_archiveTestsParameter) ${{ job.buildExtraArguments }}
- - _commonArguments: $(_args)
-
- # Windows variables
- - ${{ if eq(parameters.targetOS, 'Windows_NT') }}:
- - _buildScript: $(buildScriptFileName).cmd
- - _msbuildCommand: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -warnaserror:0 -ci
-
- # Non-Windows variables
- - ${{ if ne(parameters.targetOS, 'Windows_NT') }}:
- - _buildScript: ${{ job.buildScriptPrefix }}./$(buildScriptFileName).sh
- - _msbuildCommand: ${{ job.buildScriptPrefix }}./eng/common/msbuild.sh --warnaserror false --ci
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - _commonArguments: $(_args) -stripSymbols
-
- # pass along job properties
- ${{ each property in job }}:
- ${{ if and(ne(property.key, 'job'), ne(property.key, 'variables')) }}:
- ${{ property.key }}: ${{ property.value }}
-
- # enable helix telemetry -- we only send telemetry during official builds
- enableTelemetry: ${{ parameters.isOfficialBuild }}
- helixRepo: dotnet/corefx
-
- name: ${{ job.job }}
- workspace:
- clean: all
-
- # enabling publish build artifacts, will publish all build logs under /artifacts/log/
- enablePublishBuildArtifacts: true
-
- ${{ if eq(job.timeoutInMinutes, '') }}:
- timeoutInMinutes: 150
-
- steps:
- - ${{ if ne(job.preBuildSteps[0], '') }}:
- - ${{ job.preBuildSteps }}
-
- - script: $(_buildScript) -restore $(_commonArguments)
- displayName: Restore Build Tools
-
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - task: DotNetCoreCLI@2
- displayName: Restore internal tools
- condition: and(succeeded(), ne(variables['_skipRestoreInternalTools'], 'true'))
- inputs:
- command: restore
- feedsToUse: config
- projects: 'eng/common/internal/Tools.csproj'
- nugetConfigPath: 'eng/internal/NuGet.config'
- restoreDirectory: '$(Build.SourcesDirectory)\.packages'
- verbosityRestore: 'normal'
- externalFeedCredentials: 'dotnet-core-internal-tooling'
-
- - ${{ if eq(job.customBuildSteps[0], '') }}:
- - script: $(_buildScript)
- -build
- -buildtests
- $(_commonArguments)
- $(_testScopeArg)
- $(_msbuildCommonParameters)
- displayName: Build Sources and Tests
-
- - ${{ if ne(job.customBuildSteps[0], '') }}:
- - ${{ job.customBuildSteps }}
-
- - ${{ if eq(job.submitToHelix, 'true') }}:
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - script: $(_msbuildCommand) $(sourcesRoot)/publishTestAssets.proj
- /p:FilesToPublishPattern=$(Build.SourcesDirectory)/artifacts/helix/**/*.zip
- /p:AccountKey=$(dotnetfeed-storage-access-key-1)
- /p:ExpectedFeedUrl=$(_dotnetFeedUrl)
- /p:OSGroup=${{ parameters.targetOS }}
- /p:ArchGroup=$(_architecture)
- /p:ConfigurationGroup=$(_BuildConfig)
- /p:TargetGroup=$(_framework)
- /p:OfficialBuildId=$(Build.BuildNumber)
- /p:ContinuousIntegrationBuild=true
- /p:AssetManifestFileName=corefx-test-assets.xml
- /p:ManifestBuildId=$(Build.BuildNumber)
- /p:ManifestBuildData=Location=$(_dotnetFeedUrl)
- /p:ManifestBranch=$(Build.SourceBranchName)
- /p:ManifestCommit=$(Build.SourceVersion)
- /p:ManifestRepoUri=$(Build.Repository.Uri)
- displayName: Publish test assets to dotnet-core feed
- condition: and(succeeded(), eq(variables['_publishTests'], 'true'))
-
- - task: PublishBuildArtifacts@1
- displayName: Publish test asset manifest to artifacts container
- inputs:
- pathToPublish: $(Build.SourcesDirectory)/artifacts/TestAssetsManifests
- artifactName: $(Agent.Os)_$(Agent.JobName)
- artifactType: container
- condition: and(succeeded(), eq(variables['_publishTests'], 'true'))
-
- - template: /eng/pipelines/libraries/helix.yml
- parameters:
- # send tests to helix only on public builds, official scheduled builds or manual official builds.
- condition: eq(${{ parameters.isOfficialBuild }}, False)
- targetOS: ${{ parameters.targetOS }}
- archGroup: $(_architecture)
- configuration: $(_BuildConfig)
- helixQueues: $(_helixQueues)
- msbuildScript: $(_msbuildCommand)
- framework: $(_framework)
- testScope: ${{ coalesce(parameters.testScope, 'innerloop') }} # if parameters.testScope is empty use 'innerloop'
-
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- officialBuildId: $(Build.BuildNumber)
- helixToken: $(HelixApiAccessToken)
-
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- # TODO: SET Creator to the PR owner whenever Azure DevOps supports a good way to retrieve it.
- creator: dotnet-bot
- helixToken: ''
-
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - task: PublishBuildArtifacts@1
- displayName: Publish packages to artifacts container
- inputs:
- pathToPublish: $(Build.SourcesDirectory)/artifacts/packages
- artifactName: packages
- artifactType: container
- condition: and(succeeded(), ne(variables['_skipPublishPackages'], 'true'))
diff --git a/eng/pipelines/libraries/freebsd.yml b/eng/pipelines/libraries/freebsd.yml
deleted file mode 100644
index 5c18391311ee61..00000000000000
--- a/eng/pipelines/libraries/freebsd.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# FreeBSD leg
-parameters:
- # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
- # Default: false
- isOfficialBuild: false
- # Required: value to specify if the full test matrix should be tested
- # Default: false
- fullMatrix: false
- # Optional: value to scope the tests.
- # Default: empty
- testScope: ''
-
-jobs:
-- template: corefx-base.yml
- parameters:
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- testScope: ${{ parameters.testScope }}
- targetOS: FreeBSD
- jobs:
-
- - job: FreeBSD
- strategy:
- matrix:
- x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _buildScriptPrefix: 'DotNetCoreSdkDir=/usr/local/dotnet/ DotNetRoot=/usr/local/dotnet/ '
-
- pool:
- name: dnceng-freebsd-internal
-
- buildScriptPrefix: $(_buildScriptPrefix)
- submitToHelix: false
diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml
new file mode 100644
index 00000000000000..3c1ea75aec6664
--- /dev/null
+++ b/eng/pipelines/libraries/helix-queues-setup.yml
@@ -0,0 +1,120 @@
+parameters:
+ jobTemplate: ''
+ variables: {}
+ osGroup: ''
+ osSubgroup: ''
+ archType: ''
+ container: ''
+ pool: ''
+ platform: ''
+ jobParameters: {}
+
+jobs:
+- template: ${{ parameters.jobTemplate }}
+ parameters:
+ variables: ${{ parameters.variables }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
+ archType: ${{ parameters.archType }}
+ container: ${{ parameters.container }}
+ pool: ${{ parameters.pool }}
+ helixQueues:
+
+ # Linux arm
+ - ${{ if eq(parameters.platform, 'Linux_arm') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - \(Debian.9.Arm32.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-74c9941-20190620155841
+
+ # Linux arm64
+ - ${{ if eq(parameters.platform, 'Linux_arm64') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - \(Ubuntu.1804.ArmArch.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-a45aeeb-20190620160300
+
+ # Linux musl x64
+ - ${{ if eq(parameters.platform, 'Linux_musl_x64') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - \(Alpine.310.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}:
+ - \(Alpine.38.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190620184125
+ - \(Alpine.39.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190620184719
+ - \(Alpine.310.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010
+
+ # Linux musl arm64
+ - ${{ if eq(parameters.platform, 'Linux_musl_arm64') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - \(Alpine.38.Arm64.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-a45aeeb-20190620184035
+
+ # Linux rhel6 x64
+ - ${{ if eq(parameters.platform, 'Linux_rhel6_x64') }}:
+ - RedHat.6.Amd64.Open
+
+ # Linux x64
+ - ${{ if eq(parameters.platform, 'Linux_x64') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - Centos.7.Amd64.Open
+ - RedHat.7.Amd64.Open
+ - Debian.9.Amd64.Open
+ - Ubuntu.1604.Amd64.Open
+ - Ubuntu.1804.Amd64.Open
+ - SLES.12.Amd64.Open
+ - SLES.15.Amd64.Open
+ - \(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249
+ - \(Ubuntu.1910.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.10-helix-amd64-cfcfd50-20191030180623
+ - \(Debian.10.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-7c6abd3-20190620155928
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}:
+ - Centos.7.Amd64.Open
+ - RedHat.7.Amd64.Open
+ - Debian.9.Amd64.Open
+ - Ubuntu.1604.Amd64.Open
+ - Ubuntu.1804.Amd64.Open
+ - SLES.15.Amd64.Open
+ - \(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249
+
+ # OSX x64
+ - ${{ if eq(parameters.platform, 'OSX_x64') }}:
+ - OSX.1013.Amd64.Open
+ - OSX.1014.Amd64.Open
+
+ # Windows_NT x64
+ - ${{ if eq(parameters.platform, 'Windows_NT_x64') }}:
+ # netcoreapp
+ - ${{ if eq(parameters.jobParameters.framework, 'netcoreapp') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - Windows.7.Amd64.Open
+ - Windows.81.Amd64.Open
+ - Windows.10.Amd64.ServerRS5.Open
+ - Windows.10.Amd64.Server19H1.Open
+ - "`(Windows.Nano.1809.Amd64.Open`)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353"
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}:
+ - Windows.7.Amd64.Open
+ - Windows.81.Amd64.Open
+ - Windows.10.Amd64.Server19H1.ES.Open
+ - "`(Windows.Nano.1809.Amd64.Open`)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353"
+
+ # NETFX
+ - ${{ if eq(parameters.jobParameters.framework, 'netfx') }}:
+ - Windows.10.Amd64.Client19H1.Open
+
+ # AllConfigurations
+ - ${{ if eq(parameters.jobParameters.framework, 'allConfigurations') }}:
+ - Windows.10.Amd64.Server19H1.Open
+
+ # Windows_NT x86
+ - ${{ if eq(parameters.platform, 'Windows_NT_x86') }}:
+ # netcoreapp
+ - ${{ if eq(parameters.jobParameters.framework, 'netcoreapp') }}:
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
+ - Windows.7.Amd64.Open
+ - Windows.81.Amd64.Open
+ - Windows.10.Amd64.ServerRS5.Open
+ - Windows.10.Amd64.Server19H1.Open
+ - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}:
+ - Windows.7.Amd64.Open
+ - Windows.81.Amd64.Open
+ - Windows.10.Amd64.Server19H1.ES.Open
+
+ # NETFX
+ - ${{ if eq(parameters.jobParameters.framework, 'netfx') }}:
+ - Windows.10.Amd64.Client19H1.Open
+
+ ${{ insert }}: ${{ parameters.jobParameters }}
diff --git a/eng/pipelines/libraries/helix.yml b/eng/pipelines/libraries/helix.yml
index 8b20f44624de5b..4f5f2d28af3c45 100644
--- a/eng/pipelines/libraries/helix.yml
+++ b/eng/pipelines/libraries/helix.yml
@@ -4,10 +4,8 @@ parameters:
creator: ''
framework: ''
helixQueues: ''
- helixToken: ''
msbuildScript: ''
targetOS: ''
- officialBuildId: ''
testScope: 'innerloop' # innerloop | outerloop | all
condition: always()
@@ -22,9 +20,7 @@ steps:
/p:TargetGroup=${{ parameters.framework }}
/p:HelixTargetQueues=${{ parameters.helixQueues }}
/p:HelixBuild=$(Build.BuildNumber)
- /p:HelixAccessToken=${{ parameters.helixToken }}
/p:Creator=${{ parameters.creator }}
- /p:OfficialBuildId=${{ parameters.officialBuildId }}
/bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog
displayName: Send to Helix
condition: and(succeeded(), ${{ parameters.condition }})
diff --git a/eng/pipelines/libraries/linux.yml b/eng/pipelines/libraries/linux.yml
deleted file mode 100644
index 2f58da1b2b66a6..00000000000000
--- a/eng/pipelines/libraries/linux.yml
+++ /dev/null
@@ -1,195 +0,0 @@
-# Linux legs
-parameters:
- # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
- # Default: false
- isOfficialBuild: false
- # Required: value to specify if the full test matrix should be tested
- # Default: false
- fullMatrix: false
- # Optional: value to scope the tests.
- # Default: empty
- testScope: ''
-
-stages:
-- stage: LinuxStage
- displayName: Linux
- dependsOn: []
- jobs:
- - template: corefx-base.yml
- parameters:
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- testScope: ${{ parameters.testScope }}
- targetOS: Linux
- jobs:
-
- # Legs with Helix testing
- - job: LinuxTest
- displayName: Build
- strategy:
- matrix:
- # Run RedHat6 in release mode on CI to cover Release configuration differences
- RedHat6_x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _buildScriptPrefix: ''
- _buildExtraArguments: /p:RuntimeOS=rhel.6 /p:PortableBuild=false
- _dockerContainer: centos6_container
- _helixQueues: $(redhatHelixQueue)
- _publishTests: ${{ parameters.fullMatrix }}
-
- ${{ if eq(parameters.fullMatrix, 'false') }}:
- x64_Debug:
- _BuildConfig: Debug
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(linuxDefaultQueues)
- _dockerContainer: centos7_container
- _buildScriptPrefix: ''
- _buildExtraArguments: ''
-
- musl_x64_Debug:
- _BuildConfig: Debug
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(alpineQueues)
- _dockerContainer: alpine_39_container
- _buildScriptPrefix: ''
- _buildExtraArguments: /p:RuntimeOS=linux-musl
-
- ${{ if eq(parameters.fullMatrix, 'true') }}:
- x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(linuxDefaultQueues)
- _dockerContainer: centos7_container
- _buildScriptPrefix: ''
- _buildExtraArguments: ''
- _publishTests: true
-
- musl_x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(alpineQueues)
- _dockerContainer: alpine_39_container
- _buildScriptPrefix: ''
- _buildExtraArguments: /p:RuntimeOS=linux-musl
- _publishTests: true
-
- arm_Release:
- _BuildConfig: Release
- _architecture: arm
- _framework: netcoreapp
- _helixQueues: $(linuxArmQueues)
- _dockerContainer: ubuntu_1604_arm_cross_container
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm '
- _buildExtraArguments: -warnAsError false
- _publishTests: true
-
- musl_arm64_Release:
- _BuildConfig: Release
- _architecture: arm64
- _framework: netcoreapp
- _helixQueues: $(alpineArm64Queues)
- _dockerContainer: alpine_37_arm64_container
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm64 '
- _buildExtraArguments: -warnAsError false /p:RuntimeOS=linux-musl
- _publishTests: true
-
- arm64_Release:
- _BuildConfig: Release
- _architecture: arm64
- _framework: netcoreapp
- _helixQueues: $(linuxArm64Queues)
- _dockerContainer: ubuntu_1604_arm64_cross_container
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm64 '
- _buildExtraArguments: -warnAsError false
- _publishTests: true
-
- pool:
- name: Hosted Ubuntu 1604
-
- container: $[ variables['_dockerContainer'] ]
- buildScriptPrefix: $(_buildScriptPrefix)
- buildExtraArguments: $(_buildExtraArguments)
-
- submitToHelix: true
- # Temporary till we reduced workloads on ARM64
- timeoutInMinutes: 240
-
- variables:
- - redhatHelixQueue: RedHat.6.Amd64.Open
-
- - ${{ if eq(parameters.fullMatrix, 'false') }}:
- - linuxDefaultQueues: Centos.7.Amd64.Open+RedHat.7.Amd64.Open+Debian.9.Amd64.Open+Ubuntu.1604.Amd64.Open+Ubuntu.1804.Amd64.Open+SLES.15.Amd64.Open+\(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249
- - alpineQueues: \(Alpine.310.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010
-
- - ${{ if eq(parameters.fullMatrix, 'true') }}:
- - linuxDefaultQueues: Centos.7.Amd64.Open+RedHat.7.Amd64.Open+Debian.9.Amd64.Open+Ubuntu.1604.Amd64.Open+Ubuntu.1804.Amd64.Open+SLES.12.Amd64.Open+SLES.15.Amd64.Open+\(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249+\(Ubuntu.1910.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.10-helix-amd64-cfcfd50-20191030180623+\(Debian.10.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-7c6abd3-20190620155928
- - linuxArmQueues: \(Debian.9.Arm32.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-74c9941-20190620155841
- - alpineQueues: \(Alpine.38.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190620184125+\(Alpine.39.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190620184719+\(Alpine.310.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010
- - alpineArm64Queues: \(Alpine.38.Arm64.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-a45aeeb-20190620184035
- - linuxArm64Queues: \(Ubuntu.1804.ArmArch.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-a45aeeb-20190620160300
-
- # Legs without helix testing
- # Don't run these legs in outerloop builds
- - ${{ if and(ne(parameters.testScope, 'outerloop'), ne(parameters.testScope, 'all')) }}:
- - job: LinuxNoTest
- displayName: Build
- strategy:
- matrix:
- wasm_Release:
- _BuildConfig: Release
- _architecture: wasm
- _framework: netcoreapp
- _dockerContainer: ubuntu_1604
- _emsdkPath: $(Build.BinariesDirectory)/emsdk
- _buildScriptPrefix: 'EMSDK_PATH=$(_emsdkPath) '
- _buildExtraArguments: -os WebAssembly -warnAsError false
- _installEmscripten: true
-
- # Only run these legs in PRs.
- ${{ if eq(parameters.fullMatrix, 'false') }}:
- arm_Debug:
- _BuildConfig: Debug
- _architecture: arm
- _framework: netcoreapp
- _buildExtraArguments: /p:RuntimeOS=ubuntu.16.04 -warnAsError false
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm '
- _dockerContainer: ubuntu_1604_arm_cross_container
-
- musl_arm64_Debug:
- _BuildConfig: Debug
- _architecture: arm64
- _framework: netcoreapp
- _dockerContainer: alpine_37_arm64_container
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm64 '
- _buildExtraArguments: -warnAsError false /p:RuntimeOS=linux-musl
-
- arm64_Debug:
- _BuildConfig: Debug
- _architecture: arm64
- _framework: netcoreapp
- _dockerContainer: ubuntu_1604_arm64_cross_container
- _buildScriptPrefix: 'ROOTFS_DIR=/crossrootfs/arm64 '
- _buildExtraArguments: --warnAsError false
-
- preBuildSteps:
- - script: |
- EMSCRIPTEN_VERSION=1.38.47
- git clone https://github.com/emscripten-core/emsdk.git $(_emsdkPath)
- cd $(_emsdkPath)
- ./emsdk install ${EMSCRIPTEN_VERSION}-upstream
- ./emsdk activate --embedded ${EMSCRIPTEN_VERSION}-upstream
- displayName: Install Emscripten
- condition: and(succeeded(), eq(variables['_installEmscripten'], 'true'))
-
- pool:
- name: Hosted Ubuntu 1604
-
- container: $[ variables['_dockerContainer'] ]
- buildExtraArguments: $(_buildExtraArguments)
- buildScriptPrefix: $(_buildScriptPrefix)
- submitToHelix: false
diff --git a/eng/pipelines/libraries/macos.yml b/eng/pipelines/libraries/macos.yml
deleted file mode 100644
index 6f78bd00c4350e..00000000000000
--- a/eng/pipelines/libraries/macos.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# macOS legs
-parameters:
- # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
- # Default: false
- isOfficialBuild: false
- # Required: value to specify if the full test matrix should be tested
- # Default: false
- fullMatrix: false
- # Optional: value to scope the tests.
- # Default: empty
- testScope: ''
-
-stages:
-- stage: MacOSStage
- displayName: MacOS
- dependsOn: []
- jobs:
- - template: corefx-base.yml
- parameters:
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- testScope: ${{ parameters.testScope }}
- targetOS: OSX
- jobs:
-
- # Legs with Helix testing
- - job: MacOS
- displayName: Build
- strategy:
- matrix:
- ${{ if eq(parameters.fullMatrix, 'false') }}:
- x64_Debug:
- _BuildConfig: Debug
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(macOSQueues)
-
- ${{ if eq(parameters.fullMatrix, 'true') }}:
- x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(macOSQueues)
- _publishTests: true
-
- pool:
- name: Hosted macOS
-
- preBuildSteps:
- - script: |
- brew install pkgconfig openssl
- ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/
- ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/
- ln -s /usr/local/opt/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/
- displayName: Install Build Dependencies
-
- submitToHelix: true
-
- variables:
- - macOSQueues: OSX.1013.Amd64.Open+OSX.1014.Amd64.Open
diff --git a/eng/pipelines/libraries/outerloop.yml b/eng/pipelines/libraries/outerloop.yml
index 3359fd16743bdf..c04696f1c8bb77 100644
--- a/eng/pipelines/libraries/outerloop.yml
+++ b/eng/pipelines/libraries/outerloop.yml
@@ -6,52 +6,75 @@ schedules:
branches:
include:
- master
- - release/3.0
-
-resources:
- containers:
- - container: centos7_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-f39df28-20191023143754
-
- - container: centos6_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-f39df28-20191023143802
-
- - container: alpine_39_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
-
- - container: alpine_37_arm64_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20191023143847
-
- - container: ubuntu_1604_arm64_cross_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20191023143847
-
- - container: ubuntu_1604_arm_cross_container
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20191023143847
+ - release/*.*
variables:
- template: variables.yml
-stages:
- # Windows outerloop legs
- - ${{ if or(endsWith(variables['Build.DefinitionName'], 'windows'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- - template: windows.yml
- parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
- testScope: outerloop
+jobs:
+ - template: /eng/pipelines/common/checkout-job.yml
- # Linux outerloop legs
- - ${{ if or(endsWith(variables['Build.DefinitionName'], 'linux'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- - template: linux.yml
- parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Release
+ platforms:
+ - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+ - Windows_NT_x86
+ - ${{ if eq(variables['isFullMatrix'], true) }}:
+ - Windows_NT_x64
+ - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
+ - Linux_rhel6_x64
+ - ${{ if eq(variables['isFullMatrix'], true) }}:
+ - Linux_x64
+ - Linux_arm
+ - Linux_arm64
+ - Linux_musl_x64
+ - Linux_musl_arm64
+ - ${{ if and(eq(variables['includeOsxOuterloop'], true), eq(variables['isFullMatrix'], true)) }}:
+ - OSX_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ isFullMatrix: ${{ variables['isFullMatrix'] }}
+ framework: netcoreapp
+ runTests: true
testScope: outerloop
+
+ - ${{ if eq(variables['isFullMatrix'], false) }}:
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Debug
+ platforms:
+ - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+ - Windows_NT_x86
+ - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
+ - Linux_x64
+ - Linux_musl_x64
+ - ${{ if eq(variables['includeOsxOuterloop'], true) }}:
+ - OSX_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ isFullMatrix: ${{ variables['isFullMatrix'] }}
+ framework: netcoreapp
+ runTests: true
+ testScope: outerloop
- # MacOS outerloop legs
- - ${{ if or(endsWith(variables['Build.DefinitionName'], 'osx'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- - template: macos.yml
+ - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+ - template: /eng/pipelines/common/platform-matrix.yml
parameters:
- isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
- fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
- testScope: outerloop
+ jobTemplate: /eng/pipelines/libraries/build-job.yml
+ buildConfig: Release
+ platforms:
+ - Windows_NT_x86
+ - ${{ if eq(variables['isFullMatrix'], true) }}:
+ - Windows_NT_x64
+ helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+ jobParameters:
+ isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+ isFullMatrix: ${{ variables['isFullMatrix'] }}
+ framework: netfx
+ runTests: true
+ testScope: outerloop
\ No newline at end of file
diff --git a/eng/pipelines/libraries/pre-publish.yml b/eng/pipelines/libraries/pre-publish.yml
deleted file mode 100644
index 71752ad206fe78..00000000000000
--- a/eng/pipelines/libraries/pre-publish.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-parameters:
- buildConfiguration: Release
- dependsOn: []
-
-stages:
-- stage: PrePublish
- displayName: Pre-publish
- dependsOn: ${{ parameters.dependsOn }}
- jobs:
- - template: /eng/common/templates/jobs/jobs.yml
- parameters:
- enableMicrobuild: true
- enablePublishUsingPipelines: $(_PublishUsingPipelines)
- enablePublishBuildAssets: true
- enablePublishBuildArtifacts: true
- jobs:
- - job: SignAndPrepare
- displayName: Sign and prepare to publish
- timeoutInMinutes: 160
-
- pool:
- name: NetCoreInternal-Pool
- queue: buildpool.windows.10.amd64.vs2017
-
- workspace:
- clean: all
-
- variables:
- - group: DotNet-Versions-Publish
- - _artifactsDir: $(Build.SourcesDirectory)/artifacts
- - _TeamName: DotNetCore
- - _SignType: real
- - _BuildConfig: ${{ parameters.buildConfiguration }}
-
- steps:
- - powershell: |
- $prefix = "refs/heads/"
- $branch = "$(Build.SourceBranch)"
- $branchName = $branch
- if ($branchName.StartsWith($prefix))
- {
- $branchName = $branchName.Substring($prefix.Length)
- }
- Write-Host "For Build.SourceBranch $branch, FullBranchName is $branchName"
- Write-Host "##vso[task.setvariable variable=FullBranchName;]$branchName"
- displayName: Find true SourceBranchName
-
- - task: DownloadBuildArtifacts@0
- displayName: Download packages to publish
- inputs:
- artifactName: packages
- downloadPath: $(_artifactsDir)
-
- - script: $(buildScriptFileName).cmd
- -restore
- -ci
- displayName: Restore tools
-
- - script: $(buildScriptFileName).cmd
- -sign
- -ci
- -configuration $(_BuildConfig)
- /p:DotNetSignType=$(_SignType)
- /p:OfficialBuildId=$(Build.BuildNumber)
- displayName: Sign packages
-
- - script: $(buildScriptFileName).cmd
- -publish
- -ci
- -configuration $(_BuildConfig)
- /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
- /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
- /p:DotNetPublishBlobFeedUrl=$(_dotnetFeedUrl)
- /p:DotNetPublishToBlobFeed=true
- /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
- /p:OfficialBuildId=$(Build.BuildNumber)
- /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/PublishToArtifacts.binlog
- displayName: Publish to artifacts and produce manifest
-
- - script: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 $(sourcesRoot)/build.proj
- -warnaserror:0 -ci
- /t:UpdatePublishedVersions
- /p:GitHubAuthToken=$(AccessToken-dotnet-build-bot-public-repo)
- /p:VersionsRepoOwner=dotnet
- /p:VersionsRepo=versions
- /p:VersionsRepoPath=build-info/dotnet/corefx/$(FullBranchName)
- /p:ShippedNuGetPackageGlobPath=$(_artifactsDir)/packages/**/*.nupkg
- displayName: Update dotnet/versions
diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml
new file mode 100644
index 00000000000000..d7b316af4e9555
--- /dev/null
+++ b/eng/pipelines/libraries/run-test-job.yml
@@ -0,0 +1,64 @@
+parameters:
+ buildConfig: ''
+ osGroup: ''
+ osSubgroup: ''
+ archType: ''
+ framework: netcoreapp
+ isOfficialBuild: false
+ timeoutInMinutes: 150
+ pool: ''
+ testScope: ''
+ helixQueues: []
+ dependsOnBuildConfiguration: Debug
+ variables: {}
+
+jobs:
+ - template: /eng/pipelines/libraries/base-job.yml
+ parameters:
+ buildConfig: ${{ parameters.buildConfig }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
+ archType: ${{ parameters.archType }}
+ framework: ${{ parameters.framework }}
+ isOfficialBuild: ${{ parameters.isOfficialBuild }}
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ container: '' # we just send to helix, no need to use a container.
+ pool: ${{ parameters.pool }}
+ stepName: Run
+
+ dependsOn:
+ - ${{ format('libraries_Build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ - ${{ format('libraries_Test_{0}_{1}_x64_{2}', parameters.framework, parameters.osGroup, parameters.dependsOnBuildConfiguration) }}
+
+ variables:
+ - _archiveTestsParameter: /p:ArchiveTests=true
+ - _skipTestRestoreArg: /p:SkipTestRestore=false
+ - ${{ parameters.variables }}
+
+ steps:
+ - template: /eng/pipelines/common/download-artifact-step.yml
+ parameters:
+ displayName: Build Assets
+ artifactName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ artifactFileName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}$(archiveExtension)
+ unpackFolder: $(Build.SourcesDirectory)/artifacts
+
+ - template: /eng/pipelines/common/download-artifact-step.yml
+ parameters:
+ displayName: Test Assets
+ cleanUnpackFolder: false
+ unpackFolder: $(Build.SourcesDirectory)/artifacts
+ artifactName: ${{ format('libraries_test_assets_{0}_{1}_x64_{2}', parameters.framework, parameters.osGroup, parameters.dependsOnBuildConfiguration) }}
+ artifactFileName: ${{ format('libraries_test_assets_{0}_{1}_x64_{2}', parameters.framework, parameters.osGroup, parameters.dependsOnBuildConfiguration) }}$(archiveExtension)
+
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ targetOS: ${{ parameters.osGroup }}
+ archGroup: ${{ parameters.archType }}
+ configuration: ${{ parameters.buildConfig }}
+ helixQueues: ${{ join('+', parameters.helixQueues) }}
+ msbuildScript: $(_msbuildCommand)
+ framework: ${{ parameters.framework }}
+ testScope: ${{ parameters.testScope }}
+ creator: dotnet-bot
+ helixToken: ''
\ No newline at end of file
diff --git a/eng/pipelines/libraries/variables.yml b/eng/pipelines/libraries/variables.yml
index 2e0cf9f6da83f0..ca932a8fe9f180 100644
--- a/eng/pipelines/libraries/variables.yml
+++ b/eng/pipelines/libraries/variables.yml
@@ -5,3 +5,13 @@ variables:
value: $(Build.SourcesDirectory)/src/libraries
- name: pipelinesPath
value: /eng/pipelines/libraries
+ - name: isOfficialBuild
+ value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ - name: isFullMatrix
+ value: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
+ - name: includeWindowsOuterloop
+ value: ${{ or(endsWith(variables['Build.DefinitionName'], 'windows'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}
+ - name: includeLinuxOuterloop
+ value: ${{ or(endsWith(variables['Build.DefinitionName'], 'linux'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}
+ - name: includeOsxOuterloop
+ value: ${{ or(endsWith(variables['Build.DefinitionName'], 'osx'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}
diff --git a/eng/pipelines/libraries/windows.yml b/eng/pipelines/libraries/windows.yml
deleted file mode 100644
index c1825eaacad667..00000000000000
--- a/eng/pipelines/libraries/windows.yml
+++ /dev/null
@@ -1,162 +0,0 @@
-# Windows legs
-parameters:
- # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
- # Default: false
- isOfficialBuild: false
- # Required: value to specify if the full test matrix should be tested
- # Default: false
- fullMatrix: false
- # Optional: value to scope the tests.
- # Default: empty
- testScope: ''
-
-stages:
-- stage: WindowsStage
- displayName: Windows
- dependsOn: []
- jobs:
-
- - template: corefx-base.yml
- parameters:
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- testScope: ${{ parameters.testScope }}
- targetOS: Windows_NT
- jobs:
-
- # Legs with Helix testing
- - job: WindowsTest
- displayName: Build
- strategy:
- matrix:
- # PR CI Matrix
- ${{ if eq(parameters.fullMatrix, 'false') }}:
- x64_Debug:
- _BuildConfig: Debug
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(netcoreappWindowsQueues)+$(nanoQueues)
-
- x86_Release:
- _BuildConfig: Release
- _architecture: x86
- _framework: netcoreapp
- _helixQueues: $(netcoreappWindowsQueues)
-
- NETFX_x86_Release:
- _BuildConfig: Release
- _architecture: x86
- _framework: netfx
- _helixQueues: $(netFxQueues)
-
- # Full test matrix
- ${{ if eq(parameters.fullMatrix, 'true') }}:
- x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netcoreapp
- _helixQueues: $(netcoreappWindowsQueues)+$(nanoQueues)
- _publishTests: true
-
- x86_Release:
- _BuildConfig: Release
- _architecture: x86
- _framework: netcoreapp
- _helixQueues: $(netcoreappWindowsQueues)
- _publishTests: true
-
- NETFX_x86_Release:
- _BuildConfig: Release
- _architecture: x86
- _framework: netfx
- _helixQueues: $(netFxQueues)
- _skipPublishPackages: true # In NETFX leg we don't produce packages
-
- NETFX_x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: netfx
- _helixQueues: $(netFxQueues)
- _skipPublishPackages: true # In NETFX leg we don't produce packages
-
- pool:
- name: Hosted VS2017
-
- submitToHelix: true
- buildExtraArguments: /p:RuntimeOS=win10
-
- variables:
- - nanoQueues: "`(Windows.Nano.1809.Amd64.Open`)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353"
- - netFxQueues: Windows.10.Amd64.Client19H1.Open
-
- - ${{ if eq(parameters.fullMatrix, 'false') }}:
- - netcoreappWindowsQueues: Windows.7.Amd64.Open+Windows.81.Amd64.Open+Windows.10.Amd64.Server19H1.ES.Open
-
- - ${{ if eq(parameters.fullMatrix, 'true') }}:
- - netcoreappWindowsQueues: Windows.7.Amd64.Open+Windows.81.Amd64.Open+Windows.10.Amd64.ServerRS5.Open+Windows.10.Amd64.Server19H1.Open
-
- # There is no point of running legs without outerloop tests, when in an outerloop build.
- - ${{ if and(ne(parameters.testScope, 'outerloop'), ne(parameters.testScope, 'all')) }}:
- # Packaging all configurations
- - job: AllConfigurations
- displayName: Packaging All Configurations
- strategy:
- matrix:
- ${{ if eq(parameters.fullMatrix, 'false') }}:
- x64_Debug:
- _BuildConfig: Debug
- _architecture: x64
- _framework: allConfigurations
- _helixQueues: $(allConfigurationsQueues)
-
- ${{ if eq(parameters.fullMatrix, 'true') }}:
- x64_Release:
- _BuildConfig: Release
- _architecture: x64
- _framework: allConfigurations
- _helixQueues: $(allConfigurationsQueues)
-
- pool:
- name: Hosted VS2017
-
- submitToHelix: true
- buildExtraArguments: /p:RuntimeOS=win10
-
- variables:
- - allConfigurationsQueues: Windows.10.Amd64.Server19H1.Open
-
- frameworkArg: -allConfigurations
- customBuildSteps:
- - script: $(buildScriptFileName).cmd
- -build
- -configuration $(_BuildConfig)
- -ci
- -buildtests
- -allconfigurations
- -arch $(_architecture)
- /p:RuntimeOS=win10
- /p:ArchiveTests=true
- $(_msbuildCommonParameters)
- displayName: Build Packages and Tests
-
- # Legs without HELIX testing
- - ${{ if eq(parameters.fullMatrix, 'true') }}:
- - job: WindowsNoTest
- displayName: Build
- strategy:
- matrix:
- arm_Release:
- _BuildConfig: Release
- _architecture: arm
- _framework: netcoreapp
-
- arm64_Release:
- _BuildConfig: Release
- _architecture: arm64
- _framework: netcoreapp
- _publishTests: true
-
- pool:
- name: Hosted VS2017
-
- submitToHelix: false
- buildExtraArguments: /p:RuntimeOS=win10
diff --git a/eng/referenceAssemblies.props b/eng/referenceAssemblies.props
index ba1e667fb4e2dd..dbb4b62aabc571 100644
--- a/eng/referenceAssemblies.props
+++ b/eng/referenceAssemblies.props
@@ -3,13 +3,13 @@
true
- $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'ref'))
+ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', '$(MSBuildProjectName)'))
- $([MSBuild]::NormalizeDirectory('$(ReferenceAssemblyOutputPath)', '$(MSBuildProjectName)'))
+ $([MSBuild]::NormalizeDirectory('$(ReferenceAssemblyOutputPath)', 'ref'))
$(BaseOutputPath)$(Configuration)
- $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'ref', '$(MSBuildProjectName)'))
+ $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', '$(MSBuildProjectName)', 'ref'))
$(BaseIntermediateOutputPath)$(Configuration)
diff --git a/src/libraries/publishTestAssets.proj b/src/libraries/publishTestAssets.proj
deleted file mode 100644
index eae1362f1bc7c0..00000000000000
--- a/src/libraries/publishTestAssets.proj
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
- $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'TestAssetsManifests'))
- $(AssetManifestDir)$(AssetManifestFileName)
-
-
-
-
-
-
-
-
- <_TestAssetVersion>$(PackageVersion)-$(VersionSuffix)
- <_FileRelativePathBase>corefx-tests/$(_TestAssetVersion)/$(OSGroup).$(ArchGroup)/$(TargetGroup)/
-
-
-
- <_ItemsToPush Remove="@(_ItemsToPush)" />
- <_ItemsToPush Include="$(FilesToPublishPattern)" />
- <_ItemsToPush>
- $(_FileRelativePathBase)$([System.String]::Copy('%(RecursiveDir)%(Filename)%(Extension)').Replace('\' ,'/'))
-
-
-
-
-
-
-
-
- <_ManifestToPush Remove="@(_ManifestToPush)" />
- <_ManifestToPush Include="$(AssetManifestFilePath)">
- $(_FileRelativePathBase)$(AssetManifestFileName)
-
-
-
-
-
-
-
-
diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj
index c65ae3d5841aa6..c525db6c7bd1f2 100644
--- a/src/libraries/tests.proj
+++ b/src/libraries/tests.proj
@@ -10,8 +10,9 @@
-
+
+