osSubgroup: ''
container: ''
testGroup: ''
+ crossgenFramework: false
crossrootfsDir: ''
timeoutInMinutes: ''
signBinaries: false
### Product build
jobs:
-- template: xplat-job.yml
+- template: xplat-test-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
helixType: 'build/product/'
- enableMicrobuild: true
+ testGroup: ${{ parameters.testGroup }}
stagedBuild: ${{ parameters.stagedBuild }}
+ enableMicrobuild: true
# Compute job name from template parameters
name: ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
gatherAssetManifests: true
variables:
- - name: osGroup
- value: ${{ parameters.osGroup }}
- - name: osSubgroup
- value: ${{ parameters.osSubgroup }}
- name: stripSymbolsArg
value: ''
# Strip symbols only on the release build
- ${{ if and(eq(parameters.buildConfig, 'Release'), and(eq(parameters.osGroup, 'Windows_NT'), not(or(eq(parameters.archType, 'arm64'), eq(parameters.archType, 'arm'))))) }}:
- name: enforcePgoArg
value: '-enforcepgo'
-
- - name: artifactRootName
- value: $(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)
-
- - name: testNativeArtifactName
- value: 'NativeTestComponents_$(artifactRootName)'
-
- - name: testNativeRootFolderPath
- value: '$(binTestsPath)/obj/$(osGroup).$(archType).$(buildConfigUpper)'
-
- - name: testBuildArtifactName
- value: 'TestBuild_$(artifactRootName)'
-
- - name: testBuildRootFolderPath
- value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)'
-
- - name: binTestsPath
- value: '$(Build.SourcesDirectory)/bin/tests'
-
- - name: archiveExtension
- value: '.tar.gz'
- - name: archiveType
- value: tar
- - name: tarCompression
- value: gz
-
- - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- - name: archiveExtension
- value: '.zip'
- - name: archiveType
- value: zip
- - name: tarCompression
- value: ''
-
- - name: priorityArg
+ - name: crossgenArg
value: ''
- - ${{ if ne(parameters.testGroup, 'innerloop') }}:
- - ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - name: priorityArg
- value: 'priority1'
- - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- - name: priorityArg
- value: '-priority=1'
+ - ${{ if eq(parameters.crossgenFramework, true) }}:
+ - name: crossgenArg
+ value: 'crossgen'
steps:
- script: set __TestIntermediateDir=int&&build.cmd $(buildConfig) $(archType) -ci -skiptests -skipbuildpackages $(officialBuildIdArg) $(ibcOptimizeArg) $(enforcePgoArg)
displayName: Build product
- # Build native test components
+ # Build native test components and optionally crossgen the framework assemblies
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - script: ./build-test.sh skipmanaged $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(clangArg)
+ - script: ./build-test.sh skipmanaged $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(clangArg)
displayName: Build native test components
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- - script: build-test.cmd skipmanaged $(buildConfig) $(archType) $(priorityArg)
+ - script: build-test.cmd skipmanaged $(crossgenArg) $(buildConfig) $(archType) $(priorityArg)
displayName: Build native test components
# Sign on Windows
condition: always()
# Publish product output directory for consumption by tests.
- - task: PublishBuildArtifacts@1
- displayName: Publish product build
- inputs:
- pathtoPublish: $(Build.SourcesDirectory)/bin/Product/$(osGroup).$(archType).$(_BuildConfig)
- artifactName: ${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ - template: /eng/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(productBuildRootFolderPath)'
+ includeRootFolder: false
+ archiveFile: $(Build.StagingDirectory)/$(productBuildArtifactName)$(archiveExtension)
+ archiveType: $(archiveType)
+ tarCompression: $(tarCompression)
+ artifactName: $(productBuildArtifactName)
+ displayName: 'product build'
# Publish test native components for consumption by test execution.
- template: /eng/upload-artifact-step.yml
osSubgroup: ${{ parameters.osSubgroup }}
managedTestBuildOsGroup: ${{ parameters.osGroup }}
managedTestBuildOsSubgroup: ${{ parameters.osSubgroup }}
+ managedTestBuildArchType: ${{ parameters.archType }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
readyToRun: ${{ parameters.readyToRun }}
# Download product binaries directory
- - task: DownloadBuildArtifacts@0
- displayName: Download product build
- inputs:
- buildType: current
- downloadType: single
- artifactName: ${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- downloadPath: $(System.ArtifactsDirectory)
-
-
- # Populate Product directory
- - task: CopyFiles@2
- displayName: Populate Product directory
- inputs:
- sourceFolder: $(System.ArtifactsDirectory)/${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- contents: '**'
- targetFolder: $(Build.SourcesDirectory)/bin/Product/$(osGroup).$(archType).$(buildConfigUpper)
+ - template: /eng/download-artifact-step.yml
+ parameters:
+ downloadFolder: '$(productBuildRootFolderPath)/tmp'
+ unpackFolder: '$(productBuildRootFolderPath)'
+ cleanUnpackFolder: false
+ artifactFileName: '$(productBuildArtifactName)$(archiveExtension)'
+ artifactName: '$(productBuildArtifactName)'
+ displayName: 'product build'
# Build managed test components
### crossgen matches that of native, e.g. arm-hosted-arm-targeting, crossgen.
jobs:
-- template: xplat-job.yml
+- template: xplat-test-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
steps:
# Download product build
- - task: DownloadBuildArtifacts@0
- displayName: Download product build
- inputs:
- buildType: current
- downloadType: single
- artifactName: ${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- downloadPath: $(System.ArtifactsDirectory)
-
-
- # Populate Product directory
- - task: CopyFiles@2
- displayName: Populate Product directory
- inputs:
- sourceFolder: $(System.ArtifactsDirectory)/${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- contents: '**'
- targetFolder: $(productDirectory)/$(targetFlavor)
+ - template: /eng/download-artifact-step.yml
+ parameters:
+ downloadFolder: '$(productBuildRootFolderPath)/tmp'
+ unpackFolder: '$(productBuildRootFolderPath)'
+ cleanUnpackFolder: false
+ artifactFileName: '$(productBuildArtifactName)$(archiveExtension)'
+ artifactName: '$(productBuildArtifactName)'
+ displayName: 'product build'
# Create directories and ensure crossgen is executable
--- /dev/null
+parameters:
+ unix: false
+
+steps:
+ # Download the GIT repository
+ - template: /eng/download-artifact-step.yml
+ parameters:
+ displayName: 'GIT repository'
+ downloadFolder: $(Build.SourcesDirectory)/download/
+ cleanUnpackFolder: false
+ unpackFolder: $(Build.SourcesDirectory)
+ ${{ if ne(parameters.unix, true) }}:
+ artifactFileName: repo_windows.zip
+ artifactName: repo_windows
+ ${{ if eq(parameters.unix, true) }}:
+ artifactFileName: repo_unix.tar.gz
+ artifactName: repo_unix
# Extra steps that will be passed to the performance template and run before sending the job to helix (all of which is done in the template)
# Download product binaries directory
- - task: DownloadBuildArtifacts@0
- displayName: Download product build
- inputs:
- buildType: current
- downloadType: single
- artifactName: ${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- downloadPath: $(System.ArtifactsDirectory)
-
-
- # Populate Product directory
- - task: CopyFiles@2
- displayName: Populate Product directory
- inputs:
- sourceFolder: $(System.ArtifactsDirectory)/${{ format('BinDir_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- contents: '**'
- targetFolder: $(Build.SourcesDirectory)/bin/Product/${{ parameters.osGroup }}.${{ parameters.archType }}.Release
+ - template: /eng/download-artifact-step.yml
+ parameters:
+ downloadFolder: '$(productBuildRootFolderPath)/tmp'
+ unpackFolder: '$(productBuildRootFolderPath)'
+ cleanUnpackFolder: false
+ artifactFileName: '$(productBuildArtifactName)$(archiveExtension)'
+ artifactName: '$(productBuildArtifactName)'
+ displayName: 'product build'
# Create Core_Root
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
platformGroup: all
jobParameters:
testGroup: outerloop
+ crossgenFramework: true
#
# Release builds
signBinaries: true
publishToBlobFeed: true
testGroup: outerloop
+ crossgenFramework: true
#
# Publish build information to Build Assets Registry
- Windows_NT_x86
jobParameters:
testGroup: innerloop
+ crossgenFramework: true
#
# Release builds
platformGroup: gcstress
jobParameters:
testGroup: r2r-extra
+ crossgenFramework: true
- template: /eng/platform-matrix.yml
parameters:
- Windows_NT_x86
jobParameters:
testGroup: outerloop
+ crossgenFramework: true
- template: /eng/platform-matrix.yml
parameters:
windowsArm: ${{ parameters.windowsArm }}
windowsArm64: ${{ parameters.windowsArm64 }}
- # Determine OS for building X86 managed test artifacts on *nix
- # Currently no-op as we only run X86 tests on Windows
- x86ManagedTestBuildOsGroup: ''
+ # Determine OS / arch combo for building managed test artifacts on *nix
# Determine OS for building X64 managed test artifacts on *nix
${{ if eq(parameters.osxX64, true) }}:
- x64ManagedTestBuildOsGroup: 'OSX'
+ unixManagedTestBuildOsGroup: 'OSX'
+ unixManagedTestBuildArchType: 'x64'
${{ if and(ne(parameters.osxX64, true), eq(parameters.linuxX64, true)) }}:
- x64ManagedTestBuildOsGroup: 'Linux'
- ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), eq(parameters.linuxMuslX64, true)) }}:
- x64ManagedTestBuildOsGroup: 'Linux'
- x64ManagedTestBuildOsSubgroup: '_musl'
- ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), ne(parameters.linuxMuslX64, true), eq(parameters.linuxRhel6X64, true)) }}:
- x64ManagedTestBuildOsGroup: 'Linux'
- x64ManagedTestBuildOsSubgroup: '_rhel6'
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildArchType: 'x64'
+ ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), eq(parameters.linuxArm, true)) }}:
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildArchType: 'arm'
+ ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), ne(parameters.linuxArm, true), eq(parameters.linuxArm64, true)) }}:
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildArchType: 'arm64'
+ ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), ne(parameters.linuxArm, true), ne(parameters.linuxArm64, true), eq(parameters.linuxMuslX64, true)) }}:
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildOsSubgroup: '_musl'
+ unixManagedTestBuildArchType: 'x64'
+ ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), ne(parameters.linuxArm, true), ne(parameters.linuxArm64, true), ne(parameters.linuxMuslX64, true), eq(parameters.linuxMuslArm64, true)) }}:
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildOsSubgroup: '_musl'
+ unixManagedTestBuildArchType: 'arm64'
+ ${{ if and(ne(parameters.osxX64, true), ne(parameters.linuxX64, true), ne(parameters.linuxArm, true), ne(parameters.linuxArm64, true), ne(parameters.linuxMuslX64, true), ne(parameters.linuxMuslArm64, true), eq(parameters.linuxRhel6X64, true)) }}:
+ unixManagedTestBuildOsGroup: 'Linux'
+ unixManagedTestBuildOsSubgroup: '_rhel6'
+ unixManagedTestBuildArchType: 'x64'
- # Determine OS for building ARM managed test artifacts on *nix
- ${{ if eq(parameters.linuxArm, true) }}:
- armManagedTestBuildOsGroup: 'Linux'
+ ${{ if eq(parameters.windowsX86, true) }}:
+ windows32bitManagedTestBuildArchType: 'x86'
+ ${{ if and(ne(parameters.windowsX86, true), eq(parameters.windowsArm, true)) }}:
+ windows32bitManagedTestBuildArchType: 'arm'
- # Determine OS for building ARM64 managed test artifacts on *nix
- ${{ if eq(parameters.linuxArm64, true) }}:
- arm64ManagedTestBuildOsGroup: 'Linux'
- ${{ if and(ne(parameters.linuxArm64, true), eq(parameters.linuxMuslArm64, true)) }}:
- arm64ManagedTestBuildOsGroup: 'Linux'
- arm64ManagedTestBuildOsSubroup: '_musl'
+ ${{ if eq(parameters.windowsX64, true) }}:
+ windows64bitManagedTestBuildArchType: 'x64'
+ ${{ if and(ne(parameters.windowsX64, true), eq(parameters.windowsArm64, true)) }}:
+ windows64bitManagedTestBuildArchType: 'arm64'
windowsArm: false
windowsArm64: false
- x86ManagedTestBuildOsGroup: ''
- x86ManagedTestBuildOsSubgroup: ''
- x64ManagedTestBuildOsGroup: ''
- x64ManagedTestBuildOsSubgroup: ''
- armManagedTestBuildOsGroup: ''
- armManagedTestBuildOsSubgroup: ''
- arm64ManagedTestBuildOsGroup: ''
- arm64ManagedTestBuildOsSubgroup: ''
+ unixManagedTestBuildOsGroup: ''
+ unixManagedTestBuildOsSubgroup: ''
+ unixManagedTestBuildArchType: ''
+
+ windows32bitManagedTestBuildArchType: ''
+ windows64bitManagedTestBuildArchType: ''
jobs:
buildConfig: ${{ parameters.buildConfig }}
archType: arm
osGroup: Linux
- managedTestBuildOsGroup: ${{ parameters.armManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.armManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: ubuntu-16.04-cross-14.04-23cacb0-20190923200213
registry: mcr
buildConfig: ${{ parameters.buildConfig }}
archType: arm64
osGroup: Linux
- managedTestBuildOsGroup: ${{ parameters.arm64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.arm64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: ubuntu-16.04-cross-arm64-cfdd435-20190923200213
registry: mcr
archType: x64
osGroup: Linux
osSubgroup: _musl
- managedTestBuildOsGroup: ${{ parameters.x64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.x64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: alpine-3.9-WithNode-0fc54a3-20190918214015
registry: mcr
archType: arm64
osGroup: Linux
osSubgroup: _musl
- managedTestBuildOsGroup: ${{ parameters.arm64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.arm64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
registry: mcr
archType: x64
osGroup: Linux
osSubgroup: _rhel6
- managedTestBuildOsGroup: ${{ parameters.x64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.x64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: centos-6-50f0d02-20190918213956
registry: mcr
buildConfig: ${{ parameters.buildConfig }}
archType: x64
osGroup: Linux
- managedTestBuildOsGroup: ${{ parameters.x64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.x64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
container:
image: centos-7-50f0d02-20190918214028
registry: mcr
buildConfig: ${{ parameters.buildConfig }}
archType: x64
osGroup: OSX
- managedTestBuildOsGroup: ${{ parameters.x64ManagedTestBuildOsGroup }}
- managedTestBuildOsSubgroup: ${{ parameters.x64ManagedTestBuildOsSubgroup }}
+ managedTestBuildOsGroup: ${{ parameters.unixManagedTestBuildOsGroup }}
+ managedTestBuildOsSubgroup: ${{ parameters.unixManagedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.unixManagedTestBuildArchType }}
helixQueues:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}:
- OSX.1013.Amd64.Open
buildConfig: ${{ parameters.buildConfig }}
archType: x64
osGroup: Windows_NT
+ managedTestBuildOsGroup: 'Windows_NT'
+ managedTestBuildArchType: ${{ parameters.windows64bitManagedTestBuildArchType }}
helixQueues:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}:
- Windows.10.Amd64.Open
buildConfig: ${{ parameters.buildConfig }}
archType: x86
osGroup: Windows_NT
+ managedTestBuildOsGroup: 'Windows_NT'
+ managedTestBuildArchType: ${{ parameters.windows32bitManagedTestBuildArchType }}
helixQueues:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}:
- Windows.10.Amd64.Open
buildConfig: ${{ parameters.buildConfig }}
archType: arm
osGroup: Windows_NT
+ managedTestBuildOsGroup: 'Windows_NT'
+ managedTestBuildArchType: ${{ parameters.windows32bitManagedTestBuildArchType }}
helixQueues:
# NOTE: there are no queues specified for Windows_NT_arm public with helixQueueGroup='pr'. This means that specifying
# Windows_NT_arm for a PR job causes a build, but no test run. If the test build and test runs were separate jobs,
buildConfig: ${{ parameters.buildConfig }}
archType: arm64
osGroup: Windows_NT
+ managedTestBuildOsGroup: 'Windows_NT'
+ managedTestBuildArchType: ${{ parameters.windows64bitManagedTestBuildArchType }}
helixQueues:
# TODO: Consider adding Windows.10.Arm64.Open here if capacity is enough for handling both Windows_NT/arm and Windows_NT/arm64 testing
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
+ managedTestBuildArchType: ''
container: ''
testGroup: ''
readyToRun: false
osSubgroup: ${{ parameters.osSubgroup }}
managedTestBuildOsGroup: ${{ parameters.managedTestBuildOsGroup }}
managedTestBuildOsSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.managedTestBuildArchType }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
readyToRun: ${{ parameters.readyToRun }}
${{ if and(eq(parameters.testGroup, 'innerloop'), eq(parameters.displayNameArgs, '')) }}:
name: 'run_test_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
dependsOn:
- - 'build_test_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
+ - 'build_test_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: 'Run Test Pri0 ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
${{ if and(ne(parameters.testGroup, 'innerloop'), eq(parameters.displayNameArgs, '')) }}:
name: 'run_test_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
dependsOn:
- - 'build_test_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
+ - 'build_test_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: 'Run Test Pri1 ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
${{ if and(eq(parameters.testGroup, 'innerloop'), ne(parameters.displayNameArgs, '')) }}:
name: 'run_test_p0_${{ parameters.displayNameArgs }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
dependsOn:
- - 'build_test_p0_${{ parameters.displayNameArgs }}_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
+ - 'build_test_p0_${{ parameters.displayNameArgs }}_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: 'Run Test Pri0 ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
${{ if and(ne(parameters.testGroup, 'innerloop'), ne(parameters.displayNameArgs, '')) }}:
name: 'run_test_p1_${{ parameters.displayNameArgs }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
dependsOn:
- - 'build_test_p1_${{ parameters.displayNameArgs }}_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
+ - 'build_test_p1_${{ parameters.displayNameArgs }}_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: 'Run Test Pri1 ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
unpackFolder: '$(testRootFolderPath)'
artifactFileName: '$(testArtifactName)$(archiveExtension)'
artifactName: '$(testArtifactName)'
- displayName: 'managed test artifacts (built on ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }})'
+ displayName: 'managed test artifacts (built on ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }} ${{ parameters.managedTestBuildArchType }})'
# Download and unzip test build tree
# Download product binaries directory
- - task: DownloadBuildArtifacts@0
- displayName: Download product build
- inputs:
- buildType: current
- downloadType: single
- artifactName: 'BinDir_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- downloadPath: '$(System.ArtifactsDirectory)'
-
-
- # Populate Product directory
- - task: CopyFiles@2
- displayName: Populate Product directory
- inputs:
- sourceFolder: '$(System.ArtifactsDirectory)/BinDir_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- contents: '**'
- targetFolder: '$(Build.SourcesDirectory)/bin/Product/$(osGroup).$(archType).$(buildConfigUpper)'
+ - template: /eng/download-artifact-step.yml
+ parameters:
+ downloadFolder: '$(productBuildRootFolderPath)/tmp'
+ unpackFolder: '$(productBuildRootFolderPath)'
+ cleanUnpackFolder: false
+ artifactFileName: '$(productBuildArtifactName)$(archiveExtension)'
+ artifactName: '$(productBuildArtifactName)'
+ displayName: 'product build'
# Download and unzip the Microsoft.NET.Sdk.IL package needed for traversing
osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
+ managedTestBuildArchType: ''
container: ''
testGroup: ''
readyToRun: false
### buildConfig and archType.
jobs:
-- ${{ if and(eq(parameters.osSubgroup, parameters.managedTestBuildOsSubgroup), or(eq(parameters.osGroup, parameters.managedTestBuildOsGroup), eq(parameters.managedTestBuildOsGroup, ''))) }}:
+- ${{ if and(eq(parameters.archType, parameters.managedTestBuildArchType), eq(parameters.osSubgroup, parameters.managedTestBuildOsSubgroup), eq(parameters.osGroup, parameters.managedTestBuildOsGroup)) }}:
- template: build-test-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
- ${{ if ne(parameters.managedTestBuildOsGroup, '') }}:
- osGroup: ${{ parameters.managedTestBuildOsGroup }}
- ${{ if eq(parameters.managedTestBuildOsGroup, '') }}:
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
readyToRun: ${{ parameters.readyToRun }}
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
- ${{ if ne(parameters.managedTestBuildOsGroup, '') }}:
- managedTestBuildOsGroup: ${{ parameters.managedTestBuildOsGroup }}
- ${{ if eq(parameters.managedTestBuildOsGroup, '') }}:
- managedTestBuildOsGroup: ${{ parameters.osGroup }}
+ managedTestBuildOsGroup: ${{ parameters.managedTestBuildOsGroup }}
managedTestBuildOsSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
+ managedTestBuildArchType: ${{ parameters.managedTestBuildArchType }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
readyToRun: ${{ parameters.readyToRun }}
clean: true
# Download the GIT repository
- - template: /eng/download-artifact-step.yml
+ - template: /eng/download-git-repository-step.yml
parameters:
- displayName: 'GIT repository'
- downloadFolder: $(Build.SourcesDirectory)/download/
- cleanUnpackFolder: false
- unpackFolder: $(Build.SourcesDirectory)
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- artifactFileName: repo_windows.zip
- artifactName: repo_windows
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- artifactFileName: repo_unix.tar.gz
- artifactName: repo_unix
+ unix: ${{ ne(parameters.osGroup, 'Windows_NT') }}
- ${{ parameters.steps }}
osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
+ managedTestBuildArchType: ''
name: ''
helixType: '(unspecified)'
container: ''
gatherAssetManifests: ${{ parameters.gatherAssetManifests }}
variables:
- - ${{ if ne(parameters.testGroup, '') }}:
- - name: testArtifactRootName
- value: ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.testGroup }}
-
- - ${{ if eq(parameters.testGroup, '') }}:
- - name: testArtifactRootName
- value: ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}
-
- name: binTestsPath
value: $(Build.SourcesDirectory)/bin/tests
- name: nativeRootFolderPath
value: $(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)
- - ${{ if and(eq(parameters.corefxTests, true), eq(parameters.readyToRun, true)) }}:
- - name: testArtifactName
- value: Tests_r2r_corefx_$(testArtifactRootName)
- - ${{ if and(eq(parameters.corefxTests, true), ne(parameters.readyToRun, true)) }}:
- - name: testArtifactName
- value: Tests_corefx_$(testArtifactRootName)
- - ${{ if and(ne(parameters.corefxTests, true), eq(parameters.readyToRun, true)) }}:
- - name: testArtifactName
- value: Tests_r2r_$(testArtifactRootName)
- - ${{ if and(ne(parameters.corefxTests, true), ne(parameters.readyToRun, true)) }}:
+ - name: testArtifactNameR2RPart
+ value: ''
+
+ - ${{ if eq(parameters.readyToRun, true) }}:
+ - name: testArtifactNameR2RPart
+ value: '_r2r'
+
+ - name: testArtifactNameCoreFxPart
+ value: ''
+
+ - ${{ if eq(parameters.corefxTests, true) }}:
+ - name: testArtifactNameCoreFxPart
+ value: '_corefx'
+
+ - name: testArtifactNameTestGroupPart
+ value: ''
+
+ - ${{ if ne(parameters.testGroup, '') }}:
- name: testArtifactName
- value: Tests_$(testArtifactRootName)
+ value: _$(testGroup)
+
+ - name: testArtifactName
+ value: Tests$(testArtifactNameR2RPart)$(testArtifactNameCoreFxPart)_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_$(buildConfig)$(testArtifactNameTestGroupPart)
- name: testNativeArtifactName
value: 'NativeTestComponents_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: microsoftNetSdkIlFolderPath
value: $(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il
-
+
- name: microsoftNetSdkIlArtifactName
- value: 'MicrosoftNetSdkIlPackage_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)'
+ value: 'MicrosoftNetSdkIlPackage_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.managedTestBuildArchType }}_$(buildConfig)'
+
+ - name: productBuildArtifactName
+ value: 'BinDir_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+
+ - name: productBuildRootFolderPath
+ value: '$(Build.SourcesDirectory)/bin/Product/$(osGroup).$(archType).$(buildConfigUpper)'
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension