Move testing jobs to a separate stage after the validation/publishing stage (dotnet...
authorFadi Hanna <fadim@microsoft.com>
Sat, 24 Aug 2019 00:16:29 +0000 (17:16 -0700)
committerGitHub <noreply@github.com>
Sat, 24 Aug 2019 00:16:29 +0000 (17:16 -0700)
* 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
eng/platform-matrix.yml
eng/test-job.yml

index 3f986db..13476d2 100644 (file)
@@ -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
index 19881cf..eca9110 100644 (file)
@@ -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
index 5bb3667..502e93b 100644 (file)
@@ -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