From d7aff673307a567f87f21223b76ba0ab6def8a59 Mon Sep 17 00:00:00 2001 From: Fadi Hanna Date: Fri, 23 Aug 2019 17:16:29 -0700 Subject: [PATCH] Move testing jobs to a separate stage after the validation/publishing stage (dotnet/coreclr#26334) * Move testing jobs to a separate stage after the validation/publishing stage Commit migrated from https://github.com/dotnet/coreclr/commit/0bbc89c7279a2655e8cfe8466eb69d85899033a8 --- eng/pipelines/coreclr/internal.yml | 62 +++++++++++++++++++++----------------- eng/platform-matrix.yml | 12 ++++++++ eng/test-job.yml | 4 ++- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/eng/pipelines/coreclr/internal.yml b/eng/pipelines/coreclr/internal.yml index 3f986db..13476d2 100644 --- a/eng/pipelines/coreclr/internal.yml +++ b/eng/pipelines/coreclr/internal.yml @@ -43,34 +43,6 @@ stages: timeoutInMinutes: 120 # - # Release test builds - # - - template: /eng/platform-matrix.yml - parameters: - jobTemplate: test-job.yml - buildConfig: release - platformGroup: all - helixQueueGroup: all - jobParameters: - testGroup: outerloop - condition: ne(variables['_BypassTesting'], 'true') - - # - # ReadyToRun test builds - # - - template: /eng/platform-matrix.yml - parameters: - jobTemplate: test-job.yml - buildConfig: release - platformGroup: all - helixQueueGroup: all - jobParameters: - testGroup: outerloop - readyToRun: true - displayNameArgs: R2R - condition: ne(variables['_BypassTesting'], 'true') - - # # Publish build information to Build Assets Registry # # This job gathers build assets from the pipeline (from each official @@ -97,3 +69,37 @@ stages: parameters: # Symbol validation is not entirely reliable as of yet, so should be turned off until https://github.com/dotnet/arcade/issues/2871 is resolved. enableSymbolValidation: false + + - stage: test + displayName: Test + jobs: + # + # Release test builds + # + - template: /eng/platform-matrix.yml + parameters: + jobTemplate: test-job.yml + buildConfig: release + platformGroup: all + helixQueueGroup: all + ignoreDependencyOnBuildJobs: true + jobParameters: + testGroup: outerloop + condition: ne(variables['_BypassTesting'], 'true') + + # + # ReadyToRun test builds + # + - template: /eng/platform-matrix.yml + parameters: + jobTemplate: test-job.yml + buildConfig: release + platformGroup: all + helixQueueGroup: all + ignoreDependencyOnBuildJobs: true + jobParameters: + testGroup: outerloop + readyToRun: true + displayNameArgs: R2R + condition: ne(variables['_BypassTesting'], 'true') + \ No newline at end of file diff --git a/eng/platform-matrix.yml b/eng/platform-matrix.yml index 19881cf..eca9110 100644 --- a/eng/platform-matrix.yml +++ b/eng/platform-matrix.yml @@ -13,6 +13,7 @@ parameters: # 'all' - the queues used for non-PR, non-CI test runs, e.g., Manual or Scheduled runs. Typically this is all available queues. # 'corefx' - the queues used for a corefx test run. helixQueueGroup: 'pr' + ignoreDependencyOnBuildJobs: false jobParameters: {} jobs: @@ -25,6 +26,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_arm'), in(parameters.platformGroup, 'all', 'gcstress')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: arm osGroup: Linux @@ -47,6 +49,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_arm64'), in(parameters.platformGroup, 'all', 'gcstress')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: arm64 osGroup: Linux @@ -70,6 +73,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_musl_x64'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x64 osGroup: Linux @@ -90,6 +94,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_musl_arm64'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: arm64 osGroup: Linux @@ -110,6 +115,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_rhel6_x64'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x64 osGroup: Linux @@ -128,6 +134,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Linux_x64'), in(parameters.platformGroup, 'all', 'gcstress')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x64 osGroup: Linux @@ -175,6 +182,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'OSX_x64'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x64 osGroup: OSX @@ -195,6 +203,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Windows_NT_x64'), in(parameters.platformGroup, 'all', 'gcstress')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x64 osGroup: Windows_NT @@ -220,6 +229,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Windows_NT_x86'), in(parameters.platformGroup, 'all', 'gcstress')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: x86 osGroup: Windows_NT @@ -243,6 +253,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Windows_NT_arm'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: arm osGroup: Windows_NT @@ -262,6 +273,7 @@ jobs: - ${{ if or(containsValue(parameters.platforms, 'Windows_NT_arm64'), eq(parameters.platformGroup, 'all')) }}: - template: ${{ parameters.jobTemplate }} parameters: + ignoreDependencyOnBuildJobs: ${{ parameters.ignoreDependencyOnBuildJobs }} buildConfig: ${{ parameters.buildConfig }} archType: arm64 osGroup: Windows_NT diff --git a/eng/test-job.yml b/eng/test-job.yml index 5bb3667..502e93b 100644 --- a/eng/test-job.yml +++ b/eng/test-job.yml @@ -14,6 +14,7 @@ parameters: runInUnloadableContext: false publishTestArtifacts: false condition: true + ignoreDependencyOnBuildJobs: false ### Test job @@ -98,7 +99,8 @@ jobs: condition: and(succeeded(), ${{ parameters.condition }}) # Test job depends on the corresponding build job - dependsOn: ${{ format('build_{0}_{1}_{2}', parameters.osIdentifier, parameters.archType, parameters.buildConfig) }} + ${{ if ne(parameters.ignoreDependencyOnBuildJobs, true) }}: + dependsOn: ${{ format('build_{0}_{1}_{2}', parameters.osIdentifier, parameters.archType, parameters.buildConfig) }} # Run all steps in the container. # Note that the containers are defined in platform-matrix.yml -- 2.7.4