Remove single-stage-pipeline-with-resources.yml, use only pipeline-with-resources...
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Tue, 29 Nov 2022 23:26:36 +0000 (00:26 +0100)
committerGitHub <noreply@github.com>
Tue, 29 Nov 2022 23:26:36 +0000 (00:26 +0100)
* Remove single-stage-pipeline-with-resources.yml, use only pipeline-with-resources.yml

This reduces nesting of the pipeline templates.

* Remove file

70 files changed:
eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml [deleted file]
eng/pipelines/coreclr/ci.yml
eng/pipelines/coreclr/clrinterpreter.yml
eng/pipelines/coreclr/crossgen2-composite.yml
eng/pipelines/coreclr/crossgen2-gcstress.yml
eng/pipelines/coreclr/crossgen2-outerloop.yml
eng/pipelines/coreclr/crossgen2.yml
eng/pipelines/coreclr/exploratory.yml
eng/pipelines/coreclr/gc-longrunning.yml
eng/pipelines/coreclr/gc-simulator.yml
eng/pipelines/coreclr/gc-standalone.yml
eng/pipelines/coreclr/gcstress-extra.yml
eng/pipelines/coreclr/gcstress0x3-gcstress0xc.yml
eng/pipelines/coreclr/ilasm.yml
eng/pipelines/coreclr/jit-cfg.yml
eng/pipelines/coreclr/jit-experimental.yml
eng/pipelines/coreclr/jitrollingbuild.yml
eng/pipelines/coreclr/jitstress-isas-arm.yml
eng/pipelines/coreclr/jitstress-isas-avx512.yml
eng/pipelines/coreclr/jitstress-isas-x86.yml
eng/pipelines/coreclr/jitstress-random.yml
eng/pipelines/coreclr/jitstress.yml
eng/pipelines/coreclr/jitstress2-jitstressregs.yml
eng/pipelines/coreclr/jitstressregs-x86.yml
eng/pipelines/coreclr/jitstressregs.yml
eng/pipelines/coreclr/libraries-gcstress-extra.yml
eng/pipelines/coreclr/libraries-gcstress0x3-gcstress0xc.yml
eng/pipelines/coreclr/libraries-jitstress-random.yml
eng/pipelines/coreclr/libraries-jitstress.yml
eng/pipelines/coreclr/libraries-jitstress2-jitstressregs.yml
eng/pipelines/coreclr/libraries-jitstressregs.yml
eng/pipelines/coreclr/libraries-pgo.yml
eng/pipelines/coreclr/perf.yml
eng/pipelines/coreclr/perf_slow.yml
eng/pipelines/coreclr/pgo.yml
eng/pipelines/coreclr/pgostress.yml
eng/pipelines/coreclr/r2r-extra.yml
eng/pipelines/coreclr/r2r.yml
eng/pipelines/coreclr/release-tests.yml
eng/pipelines/coreclr/runincontext.yml
eng/pipelines/coreclr/superpmi-asmdiffs-checked-release.yml
eng/pipelines/coreclr/superpmi-collect.yml
eng/pipelines/coreclr/superpmi-diffs.yml
eng/pipelines/coreclr/superpmi-replay.yml
eng/pipelines/coreclr/tieringtest.yml
eng/pipelines/global-build.yml
eng/pipelines/libraries/enterprise/linux.yml
eng/pipelines/libraries/outerloop-mono.yml
eng/pipelines/libraries/outerloop.yml
eng/pipelines/libraries/stress/http.yml
eng/pipelines/libraries/stress/ssl.yml
eng/pipelines/runtime-android-grpc-client-tests.yml
eng/pipelines/runtime-android.yml
eng/pipelines/runtime-androidemulator.yml
eng/pipelines/runtime-cet.yml
eng/pipelines/runtime-community.yml
eng/pipelines/runtime-extra-platforms.yml
eng/pipelines/runtime-ioslike.yml
eng/pipelines/runtime-ioslikesimulator.yml
eng/pipelines/runtime-linker-tests.yml
eng/pipelines/runtime-linuxbionic.yml
eng/pipelines/runtime-llvm.yml
eng/pipelines/runtime-maccatalyst.yml
eng/pipelines/runtime-richnav.yml
eng/pipelines/runtime-staging.yml
eng/pipelines/runtime-wasm-libtests.yml
eng/pipelines/runtime-wasm-non-libtests.yml
eng/pipelines/runtime-wasm-perf.yml
eng/pipelines/runtime-wasm.yml
eng/pipelines/runtime.yml

diff --git a/eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml b/eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
deleted file mode 100644 (file)
index 020d1c7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-parameters:
-  - name: jobs
-    type: jobList
-
-extends:
-  template: pipeline-with-resources.yml
-  parameters:
-    stages:
-      - stage: Build
-        jobs: ${{ parameters.jobs }}
index e09219a..2c901b9 100644 (file)
@@ -30,138 +30,140 @@ schedules:
     always: false # run only if there were changes since the last successful scheduled run.
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Debug builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: debug
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_musl_arm64
-        - Linux_musl_x64
-        - Linux_x64
-        - OSX_arm64
-        - OSX_x64
-        - windows_arm
-        - windows_arm64
-        jobParameters:
-          testGroup: outerloop
-
-    #
-    # Checked builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platformGroup: all
-        platforms:
-        # It is too early to include OSX_arm64 in platform group all
-        # Adding it here will enable it also
-        - OSX_arm64
-        jobParameters:
-          testGroup: outerloop
+      #
+      # Debug builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: debug
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_musl_arm64
+          - Linux_musl_x64
+          - Linux_x64
+          - OSX_arm64
+          - OSX_x64
+          - windows_arm
+          - windows_arm64
+          jobParameters:
+            testGroup: outerloop
 
-    #
-    # Release builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: release
-        platforms:
-        - Linux_arm
-        - Linux_musl_arm64
-        - Linux_x64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x86
-        jobParameters:
-          testGroup: outerloop
+      #
+      # Checked builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platformGroup: all
+          platforms:
+          # It is too early to include OSX_arm64 in platform group all
+          # Adding it here will enable it also
+          - OSX_arm64
+          jobParameters:
+            testGroup: outerloop
 
-    #
-    # Release library builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: Release
-        platformGroup: all
-        platforms:
-        # It is too early to include OSX_arm64 in platform group all
-        # Adding it here will enable it also
-        - OSX_arm64
-        jobParameters:
-          isOfficialBuild: false
-          liveRuntimeBuildConfig: checked
+      #
+      # Release builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: release
+          platforms:
+          - Linux_arm
+          - Linux_musl_arm64
+          - Linux_x64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x86
+          jobParameters:
+            testGroup: outerloop
 
-    #
-    # Checked test builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        testGroup: outerloop
+      #
+      # Release library builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: Release
+          platformGroup: all
+          platforms:
+          # It is too early to include OSX_arm64 in platform group all
+          # Adding it here will enable it also
+          - OSX_arm64
+          jobParameters:
+            isOfficialBuild: false
+            liveRuntimeBuildConfig: checked
 
-    #
-    # Checked JIT test runs
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platformGroup: all
-        platforms:
-        # It is too early to include OSX_arm64 in platform group all
-        # Adding it here will enable it to also run this test
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
+      #
+      # Checked test builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
           testGroup: outerloop
-          liveLibrariesBuildConfig: Release
 
-    #
-    # Checked R2R test runs
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - Linux_musl_x64
-        - Linux_musl_arm64
-        - Linux_x64
-        - OSX_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          readyToRun: true
-          displayNameArgs: R2R_CG2
-          liveLibrariesBuildConfig: Release
+      #
+      # Checked JIT test runs
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platformGroup: all
+          platforms:
+          # It is too early to include OSX_arm64 in platform group all
+          # Adding it here will enable it to also run this test
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+
+      #
+      # Checked R2R test runs
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - Linux_musl_x64
+          - Linux_musl_arm64
+          - Linux_x64
+          - OSX_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            readyToRun: true
+            displayNameArgs: R2R_CG2
+            liveLibrariesBuildConfig: Release
 
-    #
-    # Formatting
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml
-        platforms:
-        - Linux_x64
-        - windows_x64
+      #
+      # Formatting
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml
+          platforms:
+          - Linux_x64
+          - windows_x64
index 80c5d94..dab893f 100644 (file)
@@ -10,47 +10,49 @@ trigger: none
 #  always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: clrinterpreter
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: clrinterpreter
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: clrinterpreter
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: clrinterpreter
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: clrinterpreter
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: clrinterpreter
+            liveLibrariesBuildConfig: Release
index 897ec49..b32b086 100644 (file)
@@ -9,53 +9,55 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x86
+          - windows_x64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          testGroup: innerloop
-          readyToRun: true
-          compositeBuildMode: true
-          displayNameArgs: Composite
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x86
+          - windows_x64
+          - windows_arm64
+          jobParameters:
+            testGroup: innerloop
+            readyToRun: true
+            compositeBuildMode: true
+            displayNameArgs: Composite
+            liveLibrariesBuildConfig: Release
index 59c032d..aa1e605 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        # See https://github.com/dotnet/runtime/issues/71931
-        # - OSX_x64
-        - windows_x64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          # See https://github.com/dotnet/runtime/issues/71931
+          # - OSX_x64
+          - windows_x64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        # See https://github.com/dotnet/runtime/issues/71931
-        # - OSX_x64
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          testGroup: gcstress-extra
-          readyToRun: true
-          compositeBuildMode: true
-          displayNameArgs: Composite
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          # See https://github.com/dotnet/runtime/issues/71931
+          # - OSX_x64
+          - windows_x64
+          - windows_arm64
+          jobParameters:
+            testGroup: gcstress-extra
+            readyToRun: true
+            compositeBuildMode: true
+            displayNameArgs: Composite
+            liveLibrariesBuildConfig: Release
index 4b41dab..52ba769 100644 (file)
@@ -9,221 +9,223 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x86
+          - windows_x64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_x86
-        - windows_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_x86
+          - windows_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          isOfficialBuild: false
-          liveRuntimeBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x86
+          - windows_x64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            isOfficialBuild: false
+            liveRuntimeBuildConfig: Release
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    # Test most platforms in composite mode as the expected mainline shipping mode
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          testGroup: outerloop
-          readyToRun: true
-          compositeBuildMode: true
-          displayNameArgs: R2R_Composite
-          liveLibrariesBuildConfig: Release
+      # Test most platforms in composite mode as the expected mainline shipping mode
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x64
+          - windows_arm64
+          jobParameters:
+            testGroup: outerloop
+            readyToRun: true
+            compositeBuildMode: true
+            displayNameArgs: R2R_Composite
+            liveLibrariesBuildConfig: Release
 
-    # Outerloop testing in non-composite mode
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_x64
-        - OSX_arm64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          testGroup: outerloop
-          readyToRun: true
-          displayNameArgs: R2R
-          liveLibrariesBuildConfig: Release
+      # Outerloop testing in non-composite mode
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_x64
+          - OSX_arm64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            testGroup: outerloop
+            readyToRun: true
+            displayNameArgs: R2R
+            liveLibrariesBuildConfig: Release
 
-    # Build Crossgen2 baselines
-    # These are the various crossgen2 targets that are supported, and cover all major
-    # significantly different code generators
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-build-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_x86
-        - windows_x64
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
+      # Build Crossgen2 baselines
+      # These are the various crossgen2 targets that are supported, and cover all major
+      # significantly different code generators
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-build-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_x86
+          - windows_x64
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
 
-    # test crossgen target Windows X86
-    # This job verifies that 32-bit and 64 bit crossgen2 produces the same binaries,
-    # and that cross-os targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_x64
-        - windows_x86
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: windows
-          targetarch: x86
+      # test crossgen target Windows X86
+      # This job verifies that 32-bit and 64 bit crossgen2 produces the same binaries,
+      # and that cross-os targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_x64
+          - windows_x86
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: windows
+            targetarch: x86
 
-    # test target Linux X64
-    # verify that cross OS targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - windows_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: Linux
-          targetarch: x64
+      # test target Linux X64
+      # verify that cross OS targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - windows_x64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: Linux
+            targetarch: x64
 
-    # test target Windows X64
-    # verify that cross OS targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: windows
-          targetarch: x64
+      # test target Windows X64
+      # verify that cross OS targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_x64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: windows
+            targetarch: x64
 
-    # test target Linux arm
-    # verify that cross architecture targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: Linux
-          targetarch: arm
+      # test target Linux arm
+      # verify that cross architecture targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: Linux
+            targetarch: arm
 
-    # test target Linux arm64
-    # verify that cross architecture targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: Linux
-          targetarch: arm64
+      # test target Linux arm64
+      # verify that cross architecture targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: Linux
+            targetarch: arm64
 
-    # test target osx-arm64
-    # verify that cross architecture targeting works
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
-        buildConfig: Release
-        platforms:
-        - OSX_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          targetos: OSX
-          targetarch: arm64
+      # test target osx-arm64
+      # verify that cross architecture targeting works
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
+          buildConfig: Release
+          platforms:
+          - OSX_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            targetos: OSX
+            targetarch: arm64
index 4c85904..f36ce6a 100644 (file)
@@ -9,48 +9,50 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          testGroup: innerloop
-          readyToRun: true
-          displayNameArgs: R2R_CG2
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - OSX_arm64
+          - OSX_x64
+          - windows_x64
+          - windows_arm64
+          jobParameters:
+            testGroup: innerloop
+            readyToRun: true
+            displayNameArgs: R2R_CG2
+            liveLibrariesBuildConfig: Release
index 18bd672..07b7859 100644 (file)
@@ -15,43 +15,45 @@ variables:
     value: ${{ variables['Build.DefinitionName'] }}
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        # Linux tests are built on the OSX machines.
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - OSX_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          # Linux tests are built on the OSX machines.
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - OSX_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/jit-exploratory-job.yml
-        buildConfig: checked
-        platforms:
-        # Linux tests are built on the OSX machines.
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          toolName: ${{ variables.toolName }}
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/jit-exploratory-job.yml
+          buildConfig: checked
+          platforms:
+          # Linux tests are built on the OSX machines.
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            toolName: ${{ variables.toolName }}
index 782569e..b49e258 100644 (file)
@@ -9,44 +9,46 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - windows_x64
-        - windows_arm64
-        - OSX_x64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-longrunning
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - windows_x64
+          - windows_arm64
+          - OSX_x64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-longrunning
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: release
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-longrunning
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: release
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-longrunning
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        - windows_x64
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gc-longrunning
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          - windows_x64
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gc-longrunning
+            liveLibrariesBuildConfig: Release
index a786bff..b38cb3c 100644 (file)
@@ -9,46 +9,48 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: release
-        platforms:
-        # disable Linux x64 for now until OOMs are resolved.
-        # - Linux_x64
-        - Linux_arm64
-        - windows_x64
-        - windows_arm64
-        - OSX_x64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-simulator
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: release
+          platforms:
+          # disable Linux x64 for now until OOMs are resolved.
+          # - Linux_x64
+          - Linux_arm64
+          - windows_x64
+          - windows_arm64
+          - OSX_x64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-simulator
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: release
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-simulator
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: release
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-simulator
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        platforms:
-        # disable Linux x64 for now until OOMs are resolved.
-        # - Linux_x64
-        - Linux_arm64
-        - windows_x64
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gc-simulator
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          platforms:
+          # disable Linux x64 for now until OOMs are resolved.
+          # - Linux_x64
+          - Linux_arm64
+          - windows_x64
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gc-simulator
+            liveLibrariesBuildConfig: Release
index 89d63e2..122266c 100644 (file)
@@ -9,59 +9,61 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - windows_arm64
-        - windows_x64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-standalone
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - windows_arm64
+          - windows_x64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-standalone
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gc-standalone
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gc-standalone
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gc-standalone
-          displayNameArgs: GCStandAlone
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gc-standalone
+            displayNameArgs: GCStandAlone
+            liveLibrariesBuildConfig: Release
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gc-standalone-server
-          displayNameArgs: GCStandAloneServer
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gc-standalone-server
+            displayNameArgs: GCStandAloneServer
+            liveLibrariesBuildConfig: Release
index 68725ec..28a449a 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gcstress-extra
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gcstress-extra
+            liveLibrariesBuildConfig: Release
index 4ba897d..40a358a 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress0x3-gcstress0xc
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress0x3-gcstress0xc
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: gcstress0x3-gcstress0xc
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: gcstress0x3-gcstress0xc
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: gcstress0x3-gcstress0xc
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: gcstress0x3-gcstress0xc
+            liveLibrariesBuildConfig: Release
index 48dd2d5..2fd5a65 100644 (file)
@@ -18,51 +18,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: ilasm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: ilasm
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: ilasm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: ilasm
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: ilasm
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: ilasm
+            liveLibrariesBuildConfig: Release
index 72f4c50..685aa3a 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jit-cfg
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jit-cfg
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jit-cfg
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jit-cfg
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jit-cfg
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jit-cfg
+            liveLibrariesBuildConfig: Release
index 3e543eb..e898669 100644 (file)
@@ -9,47 +9,49 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jit-experimental
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jit-experimental
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jit-experimental
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jit-experimental
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jit-experimental
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jit-experimental
+            liveLibrariesBuildConfig: Release
index 605231e..d6e0053 100644 (file)
@@ -14,34 +14,36 @@ trigger:
 pr: none
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: release
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: release
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
index dbb6cca..c1a2f63 100644 (file)
@@ -9,41 +9,43 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - OSX_arm64
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-arm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - OSX_arm64
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-arm
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-arm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-arm
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm64
-        - OSX_arm64
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress-isas-arm
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm64
+          - OSX_arm64
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress-isas-arm
+            liveLibrariesBuildConfig: Release
index 881f8a6..464e5b7 100644 (file)
@@ -21,45 +21,47 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        # Current Linux and OSX x64 pipelines do not have machines which support AVX-512.
-        # - Linux_x64
-        # - OSX_x64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-avx512
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          # Current Linux and OSX x64 pipelines do not have machines which support AVX-512.
+          # - Linux_x64
+          # - OSX_x64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-avx512
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-avx512
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-avx512
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        # Current Linux and OSX x64 pipelines do not have machines which support AVX-512.
-        # - Linux_x64
-        # - OSX_x64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress-isas-avx512
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          # Current Linux and OSX x64 pipelines do not have machines which support AVX-512.
+          # - Linux_x64
+          # - OSX_x64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress-isas-avx512
+            liveLibrariesBuildConfig: Release
index 826cc82..a7bbb60 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - OSX_x64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-x86
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - OSX_x64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-x86
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-isas-x86
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-isas-x86
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - OSX_x64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress-isas-x86
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - OSX_x64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress-isas-x86
+            liveLibrariesBuildConfig: Release
index bcb93be..771fa92 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-random
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-random
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress-random
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress-random
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress-random
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress-random
+            liveLibrariesBuildConfig: Release
index aa82582..9d5ec57 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress
+            liveLibrariesBuildConfig: Release
index 28a5d55..f96441c 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstress2-jitstressregs
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstress2-jitstressregs
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: checked
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: checked
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstress2-jitstressregs
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstress2-jitstressregs
+            liveLibrariesBuildConfig: Release
index 3cbde90..da7cb82 100644 (file)
@@ -9,41 +9,43 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstressregs-x86
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstressregs-x86
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstressregs-x86
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstressregs-x86
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstressregs-x86
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstressregs-x86
+            liveLibrariesBuildConfig: Release
index 5e55e45..90116cd 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstressregs
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstressregs
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: jitstressregs
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: jitstressregs
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: jitstressregs
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: jitstressregs
+            liveLibrariesBuildConfig: Release
index 8cb795f..21131b8 100644 (file)
@@ -10,39 +10,41 @@ trigger: none
 #   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
-          - Linux_x64
-          - windows_x64
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platformGroup: gcstress
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 600
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: gcstress-extra
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platformGroup: gcstress
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 600
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: gcstress-extra
index f593d7a..a5536ef 100644 (file)
@@ -10,39 +10,41 @@ trigger: none
 #   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
-          - Linux_x64
-          - windows_x64
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platformGroup: gcstress
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 600
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: gcstress0x3-gcstress0xc
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platformGroup: gcstress
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 600
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: gcstress0x3-gcstress0xc
index fb2694f..7b394a5 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
           - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - windows_x86
           - windows_x64
+          - windows_arm64
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 300
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: jitstress-random
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 300
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: jitstress-random
index 6e64263..189ba86 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
           - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - windows_x86
           - windows_x64
+          - windows_arm64
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 300
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: jitstress
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 300
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: jitstress
index d21d6e4..d5ac8f0 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
           - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - windows_x86
           - windows_x64
+          - windows_arm64
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 300
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: jitstress2-jitstressregs
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 300
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: jitstress2-jitstressregs
index f36f36f..d082d8b 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
           - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - windows_x86
           - windows_x64
+          - windows_arm64
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
-          timeoutInMinutes: 300
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: jitstressregs
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+            timeoutInMinutes: 300
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: jitstressregs
index c10bc4d..e73d8c7 100644 (file)
@@ -9,50 +9,52 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked and libraries Release
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - windows_x86
-        - windows_x64
-        - windows_arm64
-        jobParameters:
-          # libraries test build platforms
-          testBuildPlatforms:
+      #
+      # Build CoreCLR checked and libraries Release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
           - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - windows_x86
           - windows_x64
+          - windows_arm64
+          jobParameters:
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    #
-    # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: libraries
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          timeoutInMinutes: 600
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          coreclrTestGroup: pgo
+      #
+      # Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: libraries
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            timeoutInMinutes: 600
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            dependsOnTestBuildConfiguration: Release
+            dependsOnTestArchitecture: x64
+            coreclrTestGroup: pgo
index 8ab52e4..ae734cb 100644 (file)
@@ -36,16 +36,18 @@ variables:
   #always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
-      parameters:
-        collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }}
-        ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
-          runProfile: 'non-v8'
-        ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
-          runProfile: 'v8'
+      - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
+        parameters:
+          collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }}
+          ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
+            runProfile: 'non-v8'
+          ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
+            runProfile: 'v8'
 
-    - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml
+      - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml
index f09c415..99849b8 100644 (file)
@@ -28,224 +28,226 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-
-    - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
-      
-      # build mono
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-          runtimeFlavor: mono
-          buildConfig: release
-          platforms:
-          - Linux_arm64
-
-      # build coreclr and libraries
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-          buildConfig: release
-          platforms:
-          - Linux_arm64
-          jobParameters:
-            testGroup: perf
-
-      # run arm64 interpreter jobs for mono
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-          buildConfig: release
-          runtimeFlavor: mono
-          platforms:
-          - Linux_arm64
-          jobParameters:
-            testGroup: perf
-            liveLibrariesBuildConfig: Release
-            runtimeType: mono
-            codeGenType: 'Interpreter'
-            projectFile: microbenchmarks.proj
-            runKind: micro_mono
-            runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
-            logicalmachine: 'perfampere'
-            timeoutInMinutes: 720 
-
-      # build mono on wasm
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/global-build-job.yml
-          buildConfig: release
-          runtimeFlavor: mono
-          platforms:
-          - Browser_wasm
-          jobParameters:
-            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-            nameSuffix: wasm
-            isOfficialBuild: false
-            extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
-            extraStepsParameters:
-              rootFolder: '$(Build.SourcesDirectory)/artifacts/'
-              includeRootFolder: true
-              displayName: Browser Wasm Artifacts
-              artifactName: BrowserWasm
-              archiveType: zip
-              archiveExtension: .zip
-
-    - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
-
-      # build coreclr and libraries
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-          buildConfig: release
-          platforms:
-          - Linux_arm64
-          - windows_arm64
-          jobParameters:
-            testGroup: perf
-
-      # build mono on wasm
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/global-build-job.yml
-          buildConfig: release
-          runtimeFlavor: mono
-          platforms:
-          - Browser_wasm
-          jobParameters:
-            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-            nameSuffix: wasm
-            isOfficialBuild: false
-            extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
-            extraStepsParameters:
-              rootFolder: '$(Build.SourcesDirectory)/artifacts/'
-              includeRootFolder: true
-              displayName: Browser Wasm Artifacts
-              artifactName: BrowserWasm
-              archiveType: zip
-              archiveExtension: .zip
-
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/global-build-job.yml
-          buildConfig: release
-          runtimeFlavor: mono
-          runtimeVariant: 'llvmaot'
-          platforms:
-          - Linux_arm64
-          jobParameters:
-            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-            nameSuffix: AOT
-            isOfficialBuild: false
-            extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
-            extraStepsParameters:
-              rootFolder: '$(Build.SourcesDirectory)/artifacts/'
-              includeRootFolder: true
-              displayName: AOT Mono Artifacts
-              artifactName: LinuxMonoAOTarm64
-              archiveExtension: '.tar.gz'
-              archiveType: tar
-              tarCompression: gz
-
-      # run mono aot microbenchmarks perf job
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs?
-          buildConfig: release
-          runtimeFlavor: aot
-          platforms:
-          - Linux_arm64
-          jobParameters:
-            testGroup: perf
-            liveLibrariesBuildConfig: Release
-            runtimeType: mono
-            codeGenType: 'AOT'
-            projectFile: microbenchmarks.proj
-            runKind: micro_mono
-            runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
-            logicalmachine: 'perfampere'
-            timeoutInMinutes: 500 
-
-    # run coreclr Linux arm64 ampere microbenchmarks perf job
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-          buildConfig: release
-          runtimeFlavor: coreclr
-          platforms:
-          - Linux_arm64
-          jobParameters:
-            testGroup: perf
-            liveLibrariesBuildConfig: Release
-            projectFile: microbenchmarks.proj
-            runKind: micro
-            runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
-            logicalmachine: 'perfampere'
-            timeoutInMinutes: 500 
-
-    # run coreclr Windows arm64 microbenchmarks perf job
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-          buildConfig: release
-          runtimeFlavor: coreclr
-          platforms:
-          - windows_arm64
-          jobParameters:
-            testGroup: perf
-            liveLibrariesBuildConfig: Release
-            projectFile: microbenchmarks.proj
-            runKind: micro
-            runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
-            logicalmachine: 'perfsurf' 
-
-    # run coreclr Windows arm64 ampere microbenchmarks perf job
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-          buildConfig: release
-          runtimeFlavor: coreclr
-          platforms:
-          - windows_arm64
-          jobParameters:
-            testGroup: perf
-            liveLibrariesBuildConfig: Release
-            projectFile: microbenchmarks.proj
-            runKind: micro
-            runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
-            logicalmachine: 'perfampere' 
-
-    # Uncomment once we fix https://github.com/dotnet/performance/issues/1950
-    # # run coreclr linux crossgen perf job
-    # - template: /eng/pipelines/common/platform-matrix.yml
-    #   parameters:
-    #     jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-    #     buildConfig: release
-    #     runtimeFlavor: coreclr
-    #     platforms:
-    #     - Linux_arm64
-    #     jobParameters:
-    #       testGroup: perf
-    #       liveLibrariesBuildConfig: Release
-    #       projectFile: crossgen_perf.proj
-    #       runKind: crossgen_scenarios
-    #       runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
-    #       logicalmachine: 'perfa64'
-
-    # # run coreclr windows crossgen perf job
-    # - template: /eng/pipelines/common/platform-matrix.yml
-    #   parameters:
-    #     jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
-    #     buildConfig: release
-    #     runtimeFlavor: coreclr
-    #     platforms:
-    #     - windows_arm64
-    #     jobParameters:
-    #       testGroup: perf
-    #       liveLibrariesBuildConfig: Release
-    #       projectFile: crossgen_perf.proj
-    #       runKind: crossgen_scenarios
-    #       runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
-    #       logicalmachine: 'perfsurf'
+    stages:
+    - stage: Build
+      jobs:
+
+      - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
+        
+        # build mono
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+            runtimeFlavor: mono
+            buildConfig: release
+            platforms:
+            - Linux_arm64
+
+        # build coreclr and libraries
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+            buildConfig: release
+            platforms:
+            - Linux_arm64
+            jobParameters:
+              testGroup: perf
+
+        # run arm64 interpreter jobs for mono
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            platforms:
+            - Linux_arm64
+            jobParameters:
+              testGroup: perf
+              liveLibrariesBuildConfig: Release
+              runtimeType: mono
+              codeGenType: 'Interpreter'
+              projectFile: microbenchmarks.proj
+              runKind: micro_mono
+              runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
+              logicalmachine: 'perfampere'
+              timeoutInMinutes: 720 
+
+        # build mono on wasm
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            platforms:
+            - Browser_wasm
+            jobParameters:
+              buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+              nameSuffix: wasm
+              isOfficialBuild: false
+              extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
+              extraStepsParameters:
+                rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+                includeRootFolder: true
+                displayName: Browser Wasm Artifacts
+                artifactName: BrowserWasm
+                archiveType: zip
+                archiveExtension: .zip
+
+      - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
+
+        # build coreclr and libraries
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+            buildConfig: release
+            platforms:
+            - Linux_arm64
+            - windows_arm64
+            jobParameters:
+              testGroup: perf
+
+        # build mono on wasm
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            platforms:
+            - Browser_wasm
+            jobParameters:
+              buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+              nameSuffix: wasm
+              isOfficialBuild: false
+              extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
+              extraStepsParameters:
+                rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+                includeRootFolder: true
+                displayName: Browser Wasm Artifacts
+                artifactName: BrowserWasm
+                archiveType: zip
+                archiveExtension: .zip
+
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            runtimeVariant: 'llvmaot'
+            platforms:
+            - Linux_arm64
+            jobParameters:
+              buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+              nameSuffix: AOT
+              isOfficialBuild: false
+              extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
+              extraStepsParameters:
+                rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+                includeRootFolder: true
+                displayName: AOT Mono Artifacts
+                artifactName: LinuxMonoAOTarm64
+                archiveExtension: '.tar.gz'
+                archiveType: tar
+                tarCompression: gz
+
+        # run mono aot microbenchmarks perf job
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs?
+            buildConfig: release
+            runtimeFlavor: aot
+            platforms:
+            - Linux_arm64
+            jobParameters:
+              testGroup: perf
+              liveLibrariesBuildConfig: Release
+              runtimeType: mono
+              codeGenType: 'AOT'
+              projectFile: microbenchmarks.proj
+              runKind: micro_mono
+              runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
+              logicalmachine: 'perfampere'
+              timeoutInMinutes: 500 
+
+      # run coreclr Linux arm64 ampere microbenchmarks perf job
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+            buildConfig: release
+            runtimeFlavor: coreclr
+            platforms:
+            - Linux_arm64
+            jobParameters:
+              testGroup: perf
+              liveLibrariesBuildConfig: Release
+              projectFile: microbenchmarks.proj
+              runKind: micro
+              runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
+              logicalmachine: 'perfampere'
+              timeoutInMinutes: 500 
+
+      # run coreclr Windows arm64 microbenchmarks perf job
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+            buildConfig: release
+            runtimeFlavor: coreclr
+            platforms:
+            - windows_arm64
+            jobParameters:
+              testGroup: perf
+              liveLibrariesBuildConfig: Release
+              projectFile: microbenchmarks.proj
+              runKind: micro
+              runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
+              logicalmachine: 'perfsurf' 
+
+      # run coreclr Windows arm64 ampere microbenchmarks perf job
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+            buildConfig: release
+            runtimeFlavor: coreclr
+            platforms:
+            - windows_arm64
+            jobParameters:
+              testGroup: perf
+              liveLibrariesBuildConfig: Release
+              projectFile: microbenchmarks.proj
+              runKind: micro
+              runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml
+              logicalmachine: 'perfampere' 
+
+      # Uncomment once we fix https://github.com/dotnet/performance/issues/1950
+      # # run coreclr linux crossgen perf job
+      # - template: /eng/pipelines/common/platform-matrix.yml
+      #   parameters:
+      #     jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+      #     buildConfig: release
+      #     runtimeFlavor: coreclr
+      #     platforms:
+      #     - Linux_arm64
+      #     jobParameters:
+      #       testGroup: perf
+      #       liveLibrariesBuildConfig: Release
+      #       projectFile: crossgen_perf.proj
+      #       runKind: crossgen_scenarios
+      #       runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
+      #       logicalmachine: 'perfa64'
+
+      # # run coreclr windows crossgen perf job
+      # - template: /eng/pipelines/common/platform-matrix.yml
+      #   parameters:
+      #     jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
+      #     buildConfig: release
+      #     runtimeFlavor: coreclr
+      #     platforms:
+      #     - windows_arm64
+      #     jobParameters:
+      #       testGroup: perf
+      #       liveLibrariesBuildConfig: Release
+      #       projectFile: crossgen_perf.proj
+      #       runKind: crossgen_scenarios
+      #       runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
+      #       logicalmachine: 'perfsurf'
index 10fcb2e..affc0c1 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: pgo
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: pgo
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: pgo
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: pgo
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: pgo
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: pgo
+            liveLibrariesBuildConfig: Release
index c1d33c1..f7f729f 100644 (file)
@@ -9,51 +9,53 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: pgostress
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: pgostress
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: pgostress
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: pgostress
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: pgostress
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: pgostress
+            liveLibrariesBuildConfig: Release
index 4fda5e7..7a44a09 100644 (file)
@@ -9,45 +9,47 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platformGroup: gcstress
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: r2r-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platformGroup: gcstress
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: r2r-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: r2r-extra
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: r2r-extra
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platformGroup: gcstress # r2r-extra testGroup runs gcstress0xf scenario
-        platforms:
-        # It is too early to include OSX_arm64 in platform group gcstress
-        # Adding it here will enable it also
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: r2r-extra
-          readyToRun: true
-          displayNameArgs: R2R
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platformGroup: gcstress # r2r-extra testGroup runs gcstress0xf scenario
+          platforms:
+          # It is too early to include OSX_arm64 in platform group gcstress
+          # Adding it here will enable it also
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: r2r-extra
+            readyToRun: true
+            displayNameArgs: R2R
+            liveLibrariesBuildConfig: Release
index 0176f29..dd8d0d6 100644 (file)
@@ -9,53 +9,55 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - OSX_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          readyToRun: true
-          displayNameArgs: R2R
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - OSX_arm64
+          - windows_arm
+          - windows_arm64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            readyToRun: true
+            displayNameArgs: R2R
+            liveLibrariesBuildConfig: Release
index 7ee53ac..13a04af 100644 (file)
@@ -9,68 +9,70 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Release CoreCLR and Library builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: release
-        platformGroup: all
-        platforms:
-        # It is too early to include OSX_arm64 in platform group all
-        # Adding it here will enable it also
-        - OSX_arm64
-        jobParameters:
-          isOfficialBuild: false
+      #
+      # Release CoreCLR and Library builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: release
+          platformGroup: all
+          platforms:
+          # It is too early to include OSX_arm64 in platform group all
+          # Adding it here will enable it also
+          - OSX_arm64
+          jobParameters:
+            isOfficialBuild: false
 
-    #
-    # Release test builds
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: release
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      #
+      # Release test builds
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: release
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    #
-    # Release test runs
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        platformGroup: all
-        platforms:
-        # It is too early to include OSX_arm64 in platform group all
-        # Adding it here will enable it also
-        - OSX_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
+      #
+      # Release test runs
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          platformGroup: all
+          platforms:
+          # It is too early to include OSX_arm64 in platform group all
+          # Adding it here will enable it also
+          - OSX_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
 
-    #
-    # Release R2R test runs
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        platformGroup: all
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          readyToRun: true
-          displayNameArgs: R2R
+      #
+      # Release R2R test runs
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          platformGroup: all
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            readyToRun: true
+            displayNameArgs: R2R
 
index a7f2abb..2009f6a 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          runInUnloadableContext: true
-          displayNameArgs: RunInContext
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            runInUnloadableContext: true
+            displayNameArgs: RunInContext
+            liveLibrariesBuildConfig: Release
index acd8b6b..b4fb9fd 100644 (file)
@@ -9,36 +9,38 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          uploadAs: 'pipelineArtifacts'
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            uploadAs: 'pipelineArtifacts'
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          uploadAs: 'pipelineArtifacts'
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            uploadAs: 'pipelineArtifacts'
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-asmdiffs-checked-release-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-asmdiffs-checked-release-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
index 2ae6267..e8aabaa 100644 (file)
@@ -24,149 +24,151 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
-          # libraries test build platforms
-          testBuildPlatforms:
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
           - Linux_x64
           - windows_x64
+          - windows_x86
+          - windows_arm64
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
+            # libraries test build platforms
+            testBuildPlatforms:
+            - Linux_x64
+            - windows_x64
 
-    # superpmi-collect-job that targets macOS/arm64 depends on coreclr binaries produced by the macOS/x64 job
-    # We don't collect osx-x64 (it's essentially the same as linux-x64). If we did, we'd add OSX_x64 in the
-    # build-coreclr-and-libraries-job.yml above, and remove this.
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: outerloop
+      # superpmi-collect-job that targets macOS/arm64 depends on coreclr binaries produced by the macOS/x64 job
+      # We don't collect osx-x64 (it's essentially the same as linux-x64). If we did, we'd add OSX_x64 in the
+      # build-coreclr-and-libraries-job.yml above, and remove this.
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          collectionType: pmi
-          collectionName: libraries
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            collectionType: pmi
+            collectionName: libraries
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          collectionType: pmi
-          collectionName: libraries_tests
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            collectionType: pmi
+            collectionName: libraries_tests
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          collectionType: crossgen2
-          collectionName: libraries
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            collectionType: crossgen2
+            collectionName: libraries
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          collectionType: run
-          collectionName: benchmarks
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            collectionType: run
+            collectionName: benchmarks
 
-    #
-    # Collection of coreclr test run
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: superpmi
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          liveLibrariesBuildConfig: Release
-          SuperPmiCollect: true
+      #
+      # Collection of coreclr test run
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: superpmi
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            liveLibrariesBuildConfig: Release
+            SuperPmiCollect: true
index a2a7bfb..5d992b3 100644 (file)
@@ -16,51 +16,53 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    # Don't run if the JIT-EE GUID has changed,
-    # since there won't be any SuperPMI collections with the new GUID until the collection
-    # pipeline completes after this PR is merged.
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-paths-job.yml
-        parameters:
-          paths:
-          - subset: jiteeversionguid
-            include:
-            - src/coreclr/inc/jiteeversionguid.h
+      # Don't run if the JIT-EE GUID has changed,
+      # since there won't be any SuperPMI collections with the new GUID until the collection
+      # pipeline completes after this PR is merged.
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-paths-job.yml
+          parameters:
+            paths:
+            - subset: jiteeversionguid
+              include:
+              - src/coreclr/inc/jiteeversionguid.h
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          uploadAs: 'pipelineArtifacts'
-          condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            uploadAs: 'pipelineArtifacts'
+            condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          uploadAs: 'pipelineArtifacts'
-          condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            uploadAs: 'pipelineArtifacts'
+            condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-diffs-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
\ No newline at end of file
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-diffs-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
\ No newline at end of file
index cfe16cf..88e575b 100644 (file)
@@ -19,37 +19,39 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-paths-job.yml
-        parameters:
-          paths:
-          - subset: jiteeversionguid
-            include:
-            - src/coreclr/inc/jiteeversionguid.h
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-paths-job.yml
+          parameters:
+            paths:
+            - subset: jiteeversionguid
+              include:
+              - src/coreclr/inc/jiteeversionguid.h
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        jobParameters:
-          uploadAs: 'pipelineArtifacts'
-          condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          jobParameters:
+            uploadAs: 'pipelineArtifacts'
+            condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/superpmi-replay-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/superpmi-replay-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            condition: not(eq(dependencies.evaluate_paths.outputs['SetPathVars_jiteeversionguid.containsChange'], true))
index 5026535..0b803ff 100644 (file)
@@ -9,43 +9,45 @@ schedules:
   always: true
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: outerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: outerloop
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - windows_x86
-        helixQueueGroup: ci
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: outerloop
-          tieringTest: true
-          displayNameArgs: TieringTest
-          liveLibrariesBuildConfig: Release
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - windows_x86
+          helixQueueGroup: ci
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: outerloop
+            tieringTest: true
+            displayNameArgs: TieringTest
+            liveLibrariesBuildConfig: Release
index 614496d..b3b74b2 100644 (file)
@@ -29,148 +29,150 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    #
-    # Build with Release config and Debug runtimeConfiguration
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x86
-        - OSX_x64
-        - OSX_arm64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: Runtime_Debug
-          buildArgs: -c release -runtimeConfiguration debug
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build with Release config and Debug runtimeConfiguration
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x86
+          - OSX_x64
+          - OSX_arm64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: Runtime_Debug
+            buildArgs: -c release -runtimeConfiguration debug
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build with Release config and runtimeConfiguration with MSBuild generator
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x86
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: MSBuild_CMake
-          buildArgs: -c Release -msbuild
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build with Release config and runtimeConfiguration with MSBuild generator
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x86
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: MSBuild_CMake
+            buildArgs: -c Release -msbuild
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build with Debug config and Release runtimeConfiguration
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-        - Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: Runtime_Release
-          buildArgs: -c debug -runtimeConfiguration release
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build with Debug config and Release runtimeConfiguration
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+          - Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: Runtime_Release
+            buildArgs: -c debug -runtimeConfiguration release
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is
-    # specified. Catches cases where we depend on Configuration also being specified
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-        - Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: RuntimeFlavor_Mono
-          buildArgs: /p:RuntimeFlavor=Mono
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is
+      # specified. Catches cases where we depend on Configuration also being specified
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+          - Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: RuntimeFlavor_Mono
+            buildArgs: /p:RuntimeFlavor=Mono
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build Mono + Libraries. This exercises the code path where we build libraries without
-    # first building CoreCLR
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-        - windows_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: Mono_Libraries
-          buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build Mono + Libraries. This exercises the code path where we build libraries without
+      # first building CoreCLR
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+          - windows_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: Mono_Libraries
+            buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all
-    # configurations on a non Windows operating system.
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-        - Linux_x64
-        jobParameters:
-          nameSuffix: Libraries_AllConfigurations
-          buildArgs: -subset libs -allconfigurations
-          timeoutInMinutes: 120
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all
+      # configurations on a non Windows operating system.
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+          - Linux_x64
+          jobParameters:
+            nameSuffix: Libraries_AllConfigurations
+            buildArgs: -subset libs -allconfigurations
+            timeoutInMinutes: 120
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # SourceBuild Build
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        platforms:
-        - SourceBuild_Linux_x64
-        jobParameters:
-          nameSuffix: PortableSourceBuild
-          extraStepsParameters:
-            name: SourceBuildPackages
-          timeoutInMinutes: 95
+      #
+      # SourceBuild Build
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          platforms:
+          - SourceBuild_Linux_x64
+          jobParameters:
+            nameSuffix: PortableSourceBuild
+            extraStepsParameters:
+              name: SourceBuildPackages
+            timeoutInMinutes: 95
index 80e6ce0..6ea7f71 100644 (file)
@@ -30,56 +30,58 @@ variables:
     value: /repo/src/libraries
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - job: EnterpriseLinuxTests
-      timeoutInMinutes: 120
-      pool:
-        name: NetCore-Public
-        demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
-      steps:
-      - bash: |
-          cd $(enterpriseTestsSetup)
-          docker-compose build
-        displayName: Build test machine images
-        env:
-          DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
+    stages:
+    - stage: Build
+      jobs:
+      - job: EnterpriseLinuxTests
+        timeoutInMinutes: 120
+        pool:
+          name: NetCore-Public
+          demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
+        steps:
+        - bash: |
+            cd $(enterpriseTestsSetup)
+            docker-compose build
+          displayName: Build test machine images
+          env:
+            DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
 
-      - bash: |
-          cd $(enterpriseTestsSetup)
-          docker-compose up -d
-        displayName: Start test network and machines
-        env:
-          DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
+        - bash: |
+            cd $(enterpriseTestsSetup)
+            docker-compose up -d
+          displayName: Start test network and machines
+          env:
+            DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
 
-      - bash: |
-          docker exec linuxclient bash /setup/test-webserver.sh
-        displayName: Test linuxclient connection to web server
+        - bash: |
+            docker exec linuxclient bash /setup/test-webserver.sh
+          displayName: Test linuxclient connection to web server
 
-      - bash: |
-          docker exec linuxclient bash -c '/repo/build.sh -subset clr+libs -runtimeconfiguration release -ci /p:NativeOptimizationDataSupported=false'
-          docker exec linuxclient bash -c '/repo/dotnet.sh build $(containerLibrariesRoot)/System.Net.Http/tests/EnterpriseTests/System.Net.Http.Enterprise.Tests.csproj'
-          docker exec linuxclient bash -c '/repo/dotnet.sh build $(containerLibrariesRoot)/System.Net.Security/tests/EnterpriseTests/System.Net.Security.Enterprise.Tests.csproj'
-        displayName: Build product sources
+        - bash: |
+            docker exec linuxclient bash -c '/repo/build.sh -subset clr+libs -runtimeconfiguration release -ci /p:NativeOptimizationDataSupported=false'
+            docker exec linuxclient bash -c '/repo/dotnet.sh build $(containerLibrariesRoot)/System.Net.Http/tests/EnterpriseTests/System.Net.Http.Enterprise.Tests.csproj'
+            docker exec linuxclient bash -c '/repo/dotnet.sh build $(containerLibrariesRoot)/System.Net.Security/tests/EnterpriseTests/System.Net.Security.Enterprise.Tests.csproj'
+          displayName: Build product sources
 
-      - bash: |
-          docker exec linuxclient bash -c 'if [ -f /erc/resolv.conf.ORI ]; then cp -f /erc/resolv.conf.ORI /etc/resolv.conf; fi'
-          docker exec linuxclient $(containerRunTestsCommand) $(containerLibrariesRoot)/System.Net.Http/tests/EnterpriseTests/System.Net.Http.Enterprise.Tests.csproj
-          docker exec linuxclient $(containerRunTestsCommand) $(containerLibrariesRoot)/System.Net.Security/tests/EnterpriseTests/System.Net.Security.Enterprise.Tests.csproj
-        displayName: Build and run tests
+        - bash: |
+            docker exec linuxclient bash -c 'if [ -f /erc/resolv.conf.ORI ]; then cp -f /erc/resolv.conf.ORI /etc/resolv.conf; fi'
+            docker exec linuxclient $(containerRunTestsCommand) $(containerLibrariesRoot)/System.Net.Http/tests/EnterpriseTests/System.Net.Http.Enterprise.Tests.csproj
+            docker exec linuxclient $(containerRunTestsCommand) $(containerLibrariesRoot)/System.Net.Security/tests/EnterpriseTests/System.Net.Security.Enterprise.Tests.csproj
+          displayName: Build and run tests
 
-      - bash: |
-          cd $(enterpriseTestsSetup)
-          docker-compose down
-        displayName: Stop test network and machines
-        env:
-          DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
+        - bash: |
+            cd $(enterpriseTestsSetup)
+            docker-compose down
+          displayName: Stop test network and machines
+          env:
+            DOTNET_RUNTIME_REPO_ROOT: $(Build.SourcesDirectory)
 
-      - task: PublishTestResults@2
-        inputs:
-          testRunner: 'xUnit'
-          testResultsFiles: '**/testResults.xml'
-          testRunTitle: 'Enterprise Tests'
-          mergeTestResults: true
-          failTaskOnFailedTests: true
+        - task: PublishTestResults@2
+          inputs:
+            testRunner: 'xUnit'
+            testResultsFiles: '**/testResults.xml'
+            testRunTitle: 'Enterprise Tests'
+            mergeTestResults: true
+            failTaskOnFailedTests: true
index b087915..ef772e3 100644 (file)
@@ -13,53 +13,27 @@ variables:
   - template: variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/common/global-build-job.yml
-          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-          buildConfig: Release
-          runtimeFlavor: mono
-          platforms:
-          - windows_x86
-          - Browser_wasm
-          - ${{ if eq(variables['isRollingBuild'], true) }}:
-            - windows_x64
-            - Linux_x64
-            - Linux_arm
-            - Linux_musl_x64
-            - OSX_x64
-          jobParameters:
-            testScope: outerloop
-            nameSuffix: AllSubsets_Mono
-            buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) -testscope outerloop /p:ArchiveTests=true
-            timeoutInMinutes: 180
-            includeAllPlatforms: ${{ variables['isRollingBuild'] }}
-            # extra steps, run tests
-            extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-            extraStepsParameters:
-              scenarios:
-              - WasmTestOnBrowser
-              testScope: outerloop
-              creator: dotnet-bot
-              testRunNamePrefixSuffix: Mono_$(_BuildConfig)
-
-      - ${{ if eq(variables['isRollingBuild'], false) }}:
         - template: /eng/pipelines/common/platform-matrix.yml
           parameters:
             jobTemplate: /eng/pipelines/common/global-build-job.yml
             helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-            buildConfig: Debug
+            buildConfig: Release
             runtimeFlavor: mono
             platforms:
-            - windows_x64
-            - Linux_x64
-            - Linux_musl_x64
-            - OSX_x64
-            - Android_arm64
+            - windows_x86
+            - Browser_wasm
+            - ${{ if eq(variables['isRollingBuild'], true) }}:
+              - windows_x64
+              - Linux_x64
+              - Linux_arm
+              - Linux_musl_x64
+              - OSX_x64
             jobParameters:
               testScope: outerloop
               nameSuffix: AllSubsets_Mono
@@ -69,6 +43,34 @@ extends:
               # extra steps, run tests
               extraStepsTemplate: /eng/pipelines/libraries/helix.yml
               extraStepsParameters:
+                scenarios:
+                - WasmTestOnBrowser
                 testScope: outerloop
                 creator: dotnet-bot
                 testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+
+        - ${{ if eq(variables['isRollingBuild'], false) }}:
+          - template: /eng/pipelines/common/platform-matrix.yml
+            parameters:
+              jobTemplate: /eng/pipelines/common/global-build-job.yml
+              helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+              buildConfig: Debug
+              runtimeFlavor: mono
+              platforms:
+              - windows_x64
+              - Linux_x64
+              - Linux_musl_x64
+              - OSX_x64
+              - Android_arm64
+              jobParameters:
+                testScope: outerloop
+                nameSuffix: AllSubsets_Mono
+                buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) -testscope outerloop /p:ArchiveTests=true
+                timeoutInMinutes: 180
+                includeAllPlatforms: ${{ variables['isRollingBuild'] }}
+                # extra steps, run tests
+                extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+                extraStepsParameters:
+                  testScope: outerloop
+                  creator: dotnet-bot
+                  testRunNamePrefixSuffix: Mono_$(_BuildConfig)
index f3afca3..7c4c78f 100644 (file)
@@ -12,98 +12,100 @@ variables:
   - template: variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-      #
-      # CoreCLR Build
-      #
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-          buildConfig: release
-          platforms:
-          - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
-            - windows_x64
-            - windows_x86
-          - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
-            - Linux_x64
-            - Linux_musl_x64
-            - ${{ if eq(variables['isRollingBuild'], true) }}:
-              - Linux_arm
-              - Linux_arm64
-              - Linux_musl_arm64
-          - ${{ if eq(variables['includeOsxOuterloop'], true) }}:
-            - OSX_arm64
-            - OSX_x64
-          jobParameters:
-            testGroup: innerloop
-      #
-      # Libraries Build
-      #
-      - template: /eng/pipelines/common/platform-matrix.yml
-        parameters:
-          jobTemplate: /eng/pipelines/libraries/build-job.yml
-          buildConfig: Release
-          platforms:
-          - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
-            - windows_x86
-            - ${{ if eq(variables['isRollingBuild'], true) }}:
-              - windows_x64
-          - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
-            - ${{ if eq(variables['isRollingBuild'], true) }}:
-              - Linux_x64
-              - Linux_arm
-              - Linux_arm64
-              - Linux_musl_x64
-              - Linux_musl_arm64
-          - ${{ if and(eq(variables['includeOsxOuterloop'], true), eq(variables['isRollingBuild'], true)) }}:
-            - OSX_arm64
-            - OSX_x64
-          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-          jobParameters:
-            isOfficialBuild: ${{ variables['isOfficialBuild'] }}
-            includeAllPlatforms: ${{ variables['isRollingBuild'] }}
-            runTests: true
-            testScope: outerloop
-            liveRuntimeBuildConfig: release
-
-      - ${{ if eq(variables['isRollingBuild'], false) }}:
+        #
+        # CoreCLR Build
+        #
         - template: /eng/pipelines/common/platform-matrix.yml
           parameters:
-            jobTemplate: /eng/pipelines/libraries/build-job.yml
-            buildConfig: Debug
+            jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+            buildConfig: release
             platforms:
             - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
               - windows_x64
+              - windows_x86
             - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
               - Linux_x64
               - Linux_musl_x64
+              - ${{ if eq(variables['isRollingBuild'], true) }}:
+                - Linux_arm
+                - Linux_arm64
+                - Linux_musl_arm64
             - ${{ if eq(variables['includeOsxOuterloop'], true) }}:
               - OSX_arm64
               - OSX_x64
-            helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
             jobParameters:
-              isOfficialBuild: ${{ variables['isOfficialBuild'] }}
-              includeAllPlatforms: ${{ variables['isRollingBuild'] }}
-              runTests: true
-              testScope: outerloop
-              liveRuntimeBuildConfig: release
-
-      - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+              testGroup: innerloop
+        #
+        # Libraries Build
+        #
         - template: /eng/pipelines/common/platform-matrix.yml
           parameters:
             jobTemplate: /eng/pipelines/libraries/build-job.yml
             buildConfig: Release
             platforms:
-            - windows_x86
-            - ${{ if eq(variables['isRollingBuild'], true) }}:
-              - windows_x64
+            - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+              - windows_x86
+              - ${{ if eq(variables['isRollingBuild'], true) }}:
+                - windows_x64
+            - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
+              - ${{ if eq(variables['isRollingBuild'], true) }}:
+                - Linux_x64
+                - Linux_arm
+                - Linux_arm64
+                - Linux_musl_x64
+                - Linux_musl_arm64
+            - ${{ if and(eq(variables['includeOsxOuterloop'], true), eq(variables['isRollingBuild'], true)) }}:
+              - OSX_arm64
+              - OSX_x64
             helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
             jobParameters:
               isOfficialBuild: ${{ variables['isOfficialBuild'] }}
               includeAllPlatforms: ${{ variables['isRollingBuild'] }}
-              framework: net48
               runTests: true
               testScope: outerloop
+              liveRuntimeBuildConfig: release
+
+        - ${{ if eq(variables['isRollingBuild'], 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_x64
+              - ${{ if eq(variables['includeLinuxOuterloop'], true) }}:
+                - Linux_x64
+                - Linux_musl_x64
+              - ${{ if eq(variables['includeOsxOuterloop'], true) }}:
+                - OSX_arm64
+                - OSX_x64
+              helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+              jobParameters:
+                isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+                includeAllPlatforms: ${{ variables['isRollingBuild'] }}
+                runTests: true
+                testScope: outerloop
+                liveRuntimeBuildConfig: release
+
+        - ${{ if eq(variables['includeWindowsOuterloop'], true) }}:
+          - template: /eng/pipelines/common/platform-matrix.yml
+            parameters:
+              jobTemplate: /eng/pipelines/libraries/build-job.yml
+              buildConfig: Release
+              platforms:
+              - windows_x86
+              - ${{ if eq(variables['isRollingBuild'], true) }}:
+                - windows_x64
+              helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+              jobParameters:
+                isOfficialBuild: ${{ variables['isOfficialBuild'] }}
+                includeAllPlatforms: ${{ variables['isRollingBuild'] }}
+                framework: net48
+                runTests: true
+                testScope: outerloop
index 467bc7d..801c73c 100644 (file)
@@ -25,138 +25,140 @@ variables:
 
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - job: linux
-      displayName: Docker Linux
-      timeoutInMinutes: 180
-      variables:
-        DUMPS_SHARE_MOUNT_ROOT: "/dumps-share"
-      pool:
-        name: NetCore-Public
-        demands: ImageOverride -equals 1es-ubuntu-1804-open
-
-      steps:
-      - checkout: self
-        clean: true
-        fetchDepth: 5
-
-      - bash: |
-          $(dockerfilesFolder)/build-docker-sdk.sh -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION) && \
-          echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
-        name: buildRuntime
-        displayName: Build CLR and Libraries
-
-      - bash: |
-          $(httpStressProject)/run-docker-compose.sh -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage) && \
-          echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
-        name: buildStress
-        displayName: Build HttpStress
-
-      - bash: |
-          cd '$(httpStressProject)'
-          export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/3.0"
-          export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/3.0"
-          export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 3.0"
-          export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 3.0"
-          docker-compose up --abort-on-container-exit --no-color
-        timeoutInMinutes: 35 # In case the HTTP/3.0 run hangs, we timeout shortly after the expected 30 minute run
-        displayName: Run HttpStress - HTTP 3.0
-        condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
-
-      - bash: |
-          cd '$(httpStressProject)'
-          export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/2.0"
-          export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/2.0"
-          export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 2.0"
-          export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 2.0"
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run HttpStress - HTTP 2.0
-        condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
-
-      - bash: |
-          cd '$(httpStressProject)'
-          export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/1.1"
-          export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/1.1"
-          export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 1.1"
-          export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 1.1"
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run HttpStress - HTTP 1.1
-        condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
-
-      - bash: |
-          sudo chown -R $(id -u):$(id -g) $(Build.ArtifactStagingDirectory)/dumps
-        displayName: Own shared dumps and files
-        condition: failed()
-
-      - publish: $(Build.ArtifactStagingDirectory)/dumps
-        artifact: DumpsLinux
-        condition: failed()
-
-    - job: windows
-      displayName: Docker NanoServer
-      timeoutInMinutes: 150
-      variables:
-        DUMPS_SHARE_MOUNT_ROOT: "C:/dumps-share"
-      pool:
-        name: NetCore-Public
-        demands: ImageOverride -equals 1es-windows-2022-open
-
-      steps:
-      - checkout: self
-        clean: true
-        fetchDepth: 5
-        lfs: false
-
-      - powershell: |
-          $(dockerfilesFolder)/build-docker-sdk.ps1 -w -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
-          echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
-        name: buildRuntime
-        displayName: Build CLR and Libraries
-
-      - powershell: |
-          $(httpStressProject)/run-docker-compose.ps1 -w -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
-          echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
-        name: buildStress
-        displayName: Build HttpStress
-
-        # Firewall is disabled for the test runs, since it can lead to unexpected TCP failures on CI machines, which are unrelated to the HTTP logic.
-        # See: https://github.com/dotnet/runtime/issues/50854
-      - powershell: |
-          Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
-        name: disableFirewall
-        displayName: Disable Firewall
-
-      - powershell: |
-          cd '$(httpStressProject)'
-          $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/2.0"
-          $env:SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/2.0"
-          New-Item -Force $env:CLIENT_DUMPS_SHARE -ItemType Directory
-          New-Item -Force $env:SERVER_DUMPS_SHARE -ItemType Directory
-          $env:HTTPSTRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 2.0"
-          $env:HTTPSTRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 2.0"
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run HttpStress - HTTP 2.0
-        condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
-
-      - powershell: |
-          cd '$(httpStressProject)'
-          $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/1.1"
-          $env:SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/1.1"
-          New-Item -Force $env:CLIENT_DUMPS_SHARE -ItemType Directory
-          New-Item -Force $env:SERVER_DUMPS_SHARE -ItemType Directory
-          $env:HTTPSTRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 1.1"
-          $env:HTTPSTRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 1.1"
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run HttpStress - HTTP 1.1
-        condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
-
-      - publish: $(Build.ArtifactStagingDirectory)/dumps
-        artifact: DumpsWindows
-        condition: failed()
-
-      - powershell: |
-          Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
-        name: enableFirewall
-        displayName: Enable Firewall
+    stages:
+    - stage: Build
+      jobs:
+      - job: linux
+        displayName: Docker Linux
+        timeoutInMinutes: 180
+        variables:
+          DUMPS_SHARE_MOUNT_ROOT: "/dumps-share"
+        pool:
+          name: NetCore-Public
+          demands: ImageOverride -equals 1es-ubuntu-1804-open
+
+        steps:
+        - checkout: self
+          clean: true
+          fetchDepth: 5
+
+        - bash: |
+            $(dockerfilesFolder)/build-docker-sdk.sh -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION) && \
+            echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
+          name: buildRuntime
+          displayName: Build CLR and Libraries
+
+        - bash: |
+            $(httpStressProject)/run-docker-compose.sh -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage) && \
+            echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
+          name: buildStress
+          displayName: Build HttpStress
+
+        - bash: |
+            cd '$(httpStressProject)'
+            export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/3.0"
+            export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/3.0"
+            export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 3.0"
+            export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 3.0"
+            docker-compose up --abort-on-container-exit --no-color
+          timeoutInMinutes: 35 # In case the HTTP/3.0 run hangs, we timeout shortly after the expected 30 minute run
+          displayName: Run HttpStress - HTTP 3.0
+          condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
+
+        - bash: |
+            cd '$(httpStressProject)'
+            export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/2.0"
+            export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/2.0"
+            export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 2.0"
+            export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 2.0"
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run HttpStress - HTTP 2.0
+          condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
+
+        - bash: |
+            cd '$(httpStressProject)'
+            export CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/1.1"
+            export SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/1.1"
+            export HTTPSTRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 1.1"
+            export HTTPSTRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 1.1"
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run HttpStress - HTTP 1.1
+          condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
+
+        - bash: |
+            sudo chown -R $(id -u):$(id -g) $(Build.ArtifactStagingDirectory)/dumps
+          displayName: Own shared dumps and files
+          condition: failed()
+
+        - publish: $(Build.ArtifactStagingDirectory)/dumps
+          artifact: DumpsLinux
+          condition: failed()
+
+      - job: windows
+        displayName: Docker NanoServer
+        timeoutInMinutes: 150
+        variables:
+          DUMPS_SHARE_MOUNT_ROOT: "C:/dumps-share"
+        pool:
+          name: NetCore-Public
+          demands: ImageOverride -equals 1es-windows-2022-open
+
+        steps:
+        - checkout: self
+          clean: true
+          fetchDepth: 5
+          lfs: false
+
+        - powershell: |
+            $(dockerfilesFolder)/build-docker-sdk.ps1 -w -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
+            echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
+          name: buildRuntime
+          displayName: Build CLR and Libraries
+
+        - powershell: |
+            $(httpStressProject)/run-docker-compose.ps1 -w -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
+            echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
+          name: buildStress
+          displayName: Build HttpStress
+
+          # Firewall is disabled for the test runs, since it can lead to unexpected TCP failures on CI machines, which are unrelated to the HTTP logic.
+          # See: https://github.com/dotnet/runtime/issues/50854
+        - powershell: |
+            Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
+          name: disableFirewall
+          displayName: Disable Firewall
+
+        - powershell: |
+            cd '$(httpStressProject)'
+            $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/2.0"
+            $env:SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/2.0"
+            New-Item -Force $env:CLIENT_DUMPS_SHARE -ItemType Directory
+            New-Item -Force $env:SERVER_DUMPS_SHARE -ItemType Directory
+            $env:HTTPSTRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 2.0"
+            $env:HTTPSTRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 2.0"
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run HttpStress - HTTP 2.0
+          condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
+
+        - powershell: |
+            cd '$(httpStressProject)'
+            $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/1.1"
+            $env:SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/1.1"
+            New-Item -Force $env:CLIENT_DUMPS_SHARE -ItemType Directory
+            New-Item -Force $env:SERVER_DUMPS_SHARE -ItemType Directory
+            $env:HTTPSTRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 1.1"
+            $env:HTTPSTRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 1.1"
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run HttpStress - HTTP 1.1
+          condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
+
+        - publish: $(Build.ArtifactStagingDirectory)/dumps
+          artifact: DumpsWindows
+          condition: failed()
+
+        - powershell: |
+            Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
+          name: enableFirewall
+          displayName: Enable Firewall
index 69be347..bb7a07c 100644 (file)
@@ -25,57 +25,59 @@ variables:
 
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - job: linux
-      displayName: Docker Linux
-      timeoutInMinutes: 120
-      pool:
-        name: NetCore-Public
-        demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
+      - job: linux
+        displayName: Docker Linux
+        timeoutInMinutes: 120
+        pool:
+          name: NetCore-Public
+          demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
 
-      steps:
-      - checkout: self
-        clean: true
-        fetchDepth: 5
+        steps:
+        - checkout: self
+          clean: true
+          fetchDepth: 5
 
-      - bash: |
-          $(dockerfilesFolder)/build-docker-sdk.sh -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
-        displayName: Build CLR and Libraries
+        - bash: |
+            $(dockerfilesFolder)/build-docker-sdk.sh -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
+          displayName: Build CLR and Libraries
 
-      - bash: |
-          $(sslStressProject)/run-docker-compose.sh -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
-        displayName: Build SslStress
+        - bash: |
+            $(sslStressProject)/run-docker-compose.sh -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
+          displayName: Build SslStress
 
-      - bash: |
-          cd '$(sslStressProject)'
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run SslStress
+        - bash: |
+            cd '$(sslStressProject)'
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run SslStress
 
-    - job: windows
-      displayName: Docker NanoServer
-      timeoutInMinutes: 120
-      pool:
-        name: NetCore-Public
-        demands: ImageOverride -equals 1es-windows-2022-open
+      - job: windows
+        displayName: Docker NanoServer
+        timeoutInMinutes: 120
+        pool:
+          name: NetCore-Public
+          demands: ImageOverride -equals 1es-windows-2022-open
 
-      steps:
-      - checkout: self
-        clean: true
-        fetchDepth: 5
-        lfs: false
+        steps:
+        - checkout: self
+          clean: true
+          fetchDepth: 5
+          lfs: false
 
-      - powershell: |
-          $(dockerfilesFolder)/build-docker-sdk.ps1 -w -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
-        displayName: Build CLR and Libraries
+        - powershell: |
+            $(dockerfilesFolder)/build-docker-sdk.ps1 -w -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
+          displayName: Build CLR and Libraries
 
-      - powershell: |
-          $(sslStressProject)/run-docker-compose.ps1 -w -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
-        displayName: Build SslStress
+        - powershell: |
+            $(sslStressProject)/run-docker-compose.ps1 -w -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
+          displayName: Build SslStress
 
-      - powershell: |
-          cd '$(sslStressProject)'
-          docker-compose up --abort-on-container-exit --no-color
-        displayName: Run SslStress
+        - powershell: |
+            cd '$(sslStressProject)'
+            docker-compose up --abort-on-container-exit --no-color
+          displayName: Run SslStress
index bee2e5b..a10ab43 100644 (file)
@@ -19,30 +19,32 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Android emulators
-    # Build the whole product using Mono and run libraries tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - Android_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_gRPC
-          buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunGrpcTestsOnly=true /p:BuildGrpcServerDockerImage=true
-          timeoutInMinutes: 180
-          # extra steps, run tests
-          extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-            extraHelixArguments: /p:RunGrpcTestsOnly=true /p:BuildGrpcServerDockerImage=true
-            testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+      #
+      # Android emulators
+      # Build the whole product using Mono and run libraries tests
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - Android_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_gRPC
+            buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunGrpcTestsOnly=true /p:BuildGrpcServerDockerImage=true
+            timeoutInMinutes: 180
+            # extra steps, run tests
+            extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+              extraHelixArguments: /p:RunGrpcTestsOnly=true /p:BuildGrpcServerDockerImage=true
+              testRunNamePrefixSuffix: Mono_$(_BuildConfig)
index efdd851..81608c3 100644 (file)
@@ -8,11 +8,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-android.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isAndroidOnlyBuild: ${{ variables.isAndroidOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-android.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isAndroidOnlyBuild: ${{ variables.isAndroidOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index c1ca71c..d54ac08 100644 (file)
@@ -9,11 +9,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isAndroidEmulatorOnlyBuild: ${{ variables.isAndroidEmulatorOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isAndroidEmulatorOnlyBuild: ${{ variables.isAndroidEmulatorOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index 8ec742a..b4c2fa8 100644 (file)
@@ -32,65 +32,67 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Build CoreCLR checked
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        jobParameters:
-          testGroup: innerloop
+      #
+      # Build CoreCLR checked
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          jobParameters:
+            testGroup: innerloop
 
-    #
-    # Build CoreCLR release
-    # Always as they are needed by Installer and we always build and test the Installer.
-    #
+      #
+      # Build CoreCLR release
+      # Always as they are needed by Installer and we always build and test the Installer.
+      #
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x64
-        jobParameters:
-          testScope: innerloop
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          jobParameters:
+            testScope: innerloop
 
-    #
-    # CoreCLR Test builds using live libraries release build
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
+      #
+      # CoreCLR Test builds using live libraries release build
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
 
 
-    #
-    # CoreCLR Test executions using live libraries
-    # Only when CoreCLR is changed
-    #
+      #
+      # CoreCLR Test executions using live libraries
+      # Only when CoreCLR is changed
+      #
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        helixQueueGroup: cet
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: release
-          useCodeFlowEnforcement: true
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          helixQueueGroup: cet
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: release
+            useCodeFlowEnforcement: true
index eac7741..d8b7021 100644 (file)
@@ -31,113 +31,115 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+    stages:
+    - stage: Build
+      jobs:
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    #
-    # s390x & PPC64 little endian
-    # Build the whole product using Mono and run libraries tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_s390x
-        - Linux_ppc64le
-        variables:
-          # map dependencies variables to local variables
-          - name: librariesContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
-          - name: monoContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
-          timeoutInMinutes: 180
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          # extra steps, run tests
-          extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-            testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+      #
+      # s390x & PPC64 little endian
+      # Build the whole product using Mono and run libraries tests
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_s390x
+          - Linux_ppc64le
+          variables:
+            # map dependencies variables to local variables
+            - name: librariesContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+            - name: monoContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
+            timeoutInMinutes: 180
             condition: >-
               or(
-              eq(variables['librariesContainsChange'], true),
-              eq(variables['monoContainsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build the whole product using Mono
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - FreeBSD_x64
-        variables:
-          # map dependencies variables to local variables
-          - name: librariesContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
-          - name: monoContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
-        jobParameters:
-          testScope: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-          timeoutInMinutes: 120
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build the whole product using Mono and run libraries tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_armv6
-        variables:
-          # map dependencies variables to local variables
-          - name: librariesContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
-          - name: monoContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
-        jobParameters:
-          testScope: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+clr.iltools+clr.packages+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
-          timeoutInMinutes: 120
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          ${{ if eq(variables['isRollingBuild'], true) }}:
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
             # extra steps, run tests
             extraStepsTemplate: /eng/pipelines/libraries/helix.yml
             extraStepsParameters:
               creator: dotnet-bot
               testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+              condition: >-
+                or(
+                eq(variables['librariesContainsChange'], true),
+                eq(variables['monoContainsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build the whole product using Mono
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - FreeBSD_x64
+          variables:
+            # map dependencies variables to local variables
+            - name: librariesContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+            - name: monoContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+          jobParameters:
+            testScope: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+            timeoutInMinutes: 120
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build the whole product using Mono and run libraries tests
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_armv6
+          variables:
+            # map dependencies variables to local variables
+            - name: librariesContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+            - name: monoContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+          jobParameters:
+            testScope: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+clr.iltools+clr.packages+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
+            timeoutInMinutes: 120
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            ${{ if eq(variables['isRollingBuild'], true) }}:
+              # extra steps, run tests
+              extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+              extraStepsParameters:
+                creator: dotnet-bot
+                testRunNamePrefixSuffix: Mono_$(_BuildConfig)
index fc25c48..f784f32 100644 (file)
@@ -38,68 +38,70 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    # Add wasm jobs only for rolling builds
-    - ${{ if eq(variables.isRollingBuild, true) }}:
-      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
+      # Add wasm jobs only for rolling builds
+      - ${{ if eq(variables.isRollingBuild, true) }}:
+        - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
+          parameters:
+            isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+            isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
+            isRollingBuild: ${{ variables.isRollingBuild }}
+
+      # Add iOS/tvOS jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
         parameters:
           isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-          isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
+          isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
           isRollingBuild: ${{ variables.isRollingBuild }}
 
-    # Add iOS/tvOS jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
-
-    # Add iOS/tvOS simulator jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isiOSLikeSimulatorOnlyBuild: ${{ variables.isiOSLikeSimulatorOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
-
-    # Add Android jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-android.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isAndroidOnlyBuild: ${{ variables.isAndroidOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+      # Add iOS/tvOS simulator jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isiOSLikeSimulatorOnlyBuild: ${{ variables.isiOSLikeSimulatorOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
 
-    # Add Android emulator jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isAndroidEmulatorOnlyBuild: ${{ variables.isAndroidEmulatorOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+      # Add Android jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-android.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isAndroidOnlyBuild: ${{ variables.isAndroidOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
 
-    # Add Mac Catalyst jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+      # Add Android emulator jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isAndroidEmulatorOnlyBuild: ${{ variables.isAndroidEmulatorOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
 
-    # Add Linux Bionic jobs
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+      # Add Mac Catalyst jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
 
-    # Any jobs that are not specific to any platform
-    - ${{ if eq(variables.isNotSpecificPlatformOnlyBuild, true) }}:
-      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml
+      # Add Linux Bionic jobs
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml
         parameters:
           isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
+
+      # Any jobs that are not specific to any platform
+      - ${{ if eq(variables.isNotSpecificPlatformOnlyBuild, true) }}:
+        - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml
+          parameters:
+            isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
index 83569d5..1100ec5 100644 (file)
@@ -8,11 +8,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index aa4281f..ca20c52 100644 (file)
@@ -9,11 +9,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isiOSLikeSimulatorOnlyBuild: ${{ variables.isiOSLikeSimulatorOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isiOSLikeSimulatorOnlyBuild: ${{ variables.isiOSLikeSimulatorOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index 310d5fa..4a75a0b 100644 (file)
@@ -49,79 +49,81 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    #
-    # Build and Test ILLink in Release config vertical for Windows, Linux and OSX
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x64
-        - OSX_x64
-        - Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: ILLink_Runtime_Testing
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          buildArgs: -s tools.illinktests -test -c $(_BuildConfig)
+      #
+      # Build and Test ILLink in Release config vertical for Windows, Linux and OSX
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          - OSX_x64
+          - Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: ILLink_Runtime_Testing
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            buildArgs: -s tools.illinktests -test -c $(_BuildConfig)
 
-    #
-    # Build Release config vertical for Windows, Linux, and OSX
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - windows_x64
-        - OSX_x64
-        - Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: Runtime_Release
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          buildArgs: -s clr+libs -c $(_BuildConfig)
-          extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
+      #
+      # Build Release config vertical for Windows, Linux, and OSX
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          - OSX_x64
+          - Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: Runtime_Release
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            buildArgs: -s clr+libs -c $(_BuildConfig)
+            extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
 
-    #
-    # Build Release config vertical for Browser-wasm
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - Browser_wasm
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: Runtime_Release
-          buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false
-          condition:
-            or(
-              eq(variables['isRollingBuild'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true))
-          extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
-          extraStepsParameters:
-              extraTestArgs: '/p:WasmBuildNative=false'
+      #
+      # Build Release config vertical for Browser-wasm
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - Browser_wasm
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: Runtime_Release
+            buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false
+            condition:
+              or(
+                eq(variables['isRollingBuild'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true))
+            extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
+            extraStepsParameters:
+                extraTestArgs: '/p:WasmBuildNative=false'
index b255bca..1edfb47 100644 (file)
@@ -8,11 +8,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index 0ddc724..189e36e 100644 (file)
@@ -52,167 +52,169 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    #
-    # Build Mono and Installer on LLVMJIT mode
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMJIT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build Mono and Installer on LLVMJIT mode
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - OSX_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMJIT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMJIT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMJIT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build Mono and Installer on LLVMAOT mode
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMAOT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build Mono and Installer on LLVMAOT mode
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMAOT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        runtimeFlavor: mono
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMAOT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          runtimeFlavor: mono
+          platforms:
+          - OSX_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMAOT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Build Mono release with LLVM AOT
-    # Only when mono, or the runtime tests changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          runtimeVariant: llvmaot
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Build Mono release with LLVM AOT
+      # Only when mono, or the runtime tests changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          jobParameters:
+            runtimeVariant: llvmaot
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
-    # Only when Mono is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation
-        #- Linux_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          liveRuntimeBuildConfig: release
-          runtimeVariant: llvmaot
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
+      # Only when Mono is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation
+          #- Linux_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            liveRuntimeBuildConfig: release
+            runtimeVariant: llvmaot
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
-    # Only when Mono is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          liveRuntimeBuildConfig: release
-          runtimeVariant: llvmfullaot
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
+      #
+      # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
+      # Only when Mono is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            liveRuntimeBuildConfig: release
+            runtimeVariant: llvmfullaot
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
index 979a699..cf67dd9 100644 (file)
@@ -8,11 +8,13 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+    stages:
+    - stage: Build
+      jobs:
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index 753a362..2056ee4 100644 (file)
@@ -23,32 +23,34 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-          - windows_x64
-        jobParameters:
-          enableRichCodeNavigation: true
-          richCodeNavigationEnvironment: "production"
-          richCodeNavigationLanguage: "csharp"
-          timeoutInMinutes: 240
-          buildArgs: -s libs.sfx+libs.oob -allConfigurations
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+            - windows_x64
+          jobParameters:
+            enableRichCodeNavigation: true
+            richCodeNavigationEnvironment: "production"
+            richCodeNavigationLanguage: "csharp"
+            timeoutInMinutes: 240
+            buildArgs: -s libs.sfx+libs.oob -allConfigurations
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-          - windows_x64
-        jobParameters:
-          enableRichCodeNavigation: true
-          nameSuffix: Mono
-          richCodeNavigationEnvironment: "production"
-          richCodeNavigationLanguage: "csharp,cpp"
-          buildArgs: -s mono -c debug
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+            - windows_x64
+          jobParameters:
+            enableRichCodeNavigation: true
+            nameSuffix: Mono
+            richCodeNavigationEnvironment: "production"
+            richCodeNavigationLanguage: "csharp,cpp"
+            buildArgs: -s mono -c debug
index 820b10f..0187e56 100644 (file)
@@ -51,51 +51,53 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    #
-    # Build the whole product using Mono and run runtime tests with the JIT.
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-          - iOSSimulator_x64
-        variables:
-          - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
-            - name: _HelixSource
-              value: pr/dotnet/runtime/$(Build.SourceBranch)
-          - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
-            - name: _HelixSource
-              value: ci/dotnet/runtime/$(Build.SourceBranch)
-          - name: timeoutPerTestInMinutes
-            value: 60
-          - name: timeoutPerTestCollectionInMinutes
-            value: 180
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_RuntimeTests
-          buildArgs: -s mono+libs -c $(_BuildConfig)
-          timeoutInMinutes: 240
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          ${{ if eq(variables['isRollingBuild'], true) }}:
-            # extra steps, run tests
-            extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
-            extraStepsParameters:
-              creator: dotnet-bot
-              testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+      #
+      # Build the whole product using Mono and run runtime tests with the JIT.
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - iOSSimulator_x64
+          variables:
+            - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
+              - name: _HelixSource
+                value: pr/dotnet/runtime/$(Build.SourceBranch)
+            - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
+              - name: _HelixSource
+                value: ci/dotnet/runtime/$(Build.SourceBranch)
+            - name: timeoutPerTestInMinutes
+              value: 60
+            - name: timeoutPerTestCollectionInMinutes
+              value: 180
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_RuntimeTests
+            buildArgs: -s mono+libs -c $(_BuildConfig)
+            timeoutInMinutes: 240
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            ${{ if eq(variables['isRollingBuild'], true) }}:
+              # extra steps, run tests
+              extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
+              extraStepsParameters:
+                creator: dotnet-bot
+                testRunNamePrefixSuffix: Mono_$(_BuildConfig)
index 3a0ba67..60912d2 100644 (file)
@@ -4,19 +4,21 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
-        excludeNonLibTests: true
-        excludeLibTests: false
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
+          excludeNonLibTests: true
+          excludeLibTests: false
index 9e16cb2..906c56f 100644 (file)
@@ -4,19 +4,21 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
-        excludeNonLibTests: false
-        excludeLibTests: true
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
+          excludeNonLibTests: false
+          excludeLibTests: true
index fe26b35..bd6a6d9 100644 (file)
@@ -8,25 +8,27 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    #- ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      #- template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      #- ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        #- template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
-      parameters:
-        runProfile: 'v8'
-        collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }}
-        onlySanityCheck: true
-        #perfForkToUse:
-          #url: https://github.com/radical/performance
-          #branch: fix-build
-        #downloadSpecificBuild:
-          #buildId: '1878694'
-          #pipeline: 'perf-wasm'
-          #branchName: 'refs/pull/72119/head'
+      - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
+        parameters:
+          runProfile: 'v8'
+          collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }}
+          onlySanityCheck: true
+          #perfForkToUse:
+            #url: https://github.com/radical/performance
+            #branch: fix-build
+          #downloadSpecificBuild:
+            #buildId: '1878694'
+            #pipeline: 'perf-wasm'
+            #branchName: 'refs/pull/72119/head'
index cd7a204..1aa23ee 100644 (file)
@@ -8,17 +8,19 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
+    stages:
+    - stage: Build
+      jobs:
 
-    #
-    # Evaluate paths
-    #
-    - template: /eng/pipelines/common/evaluate-default-paths.yml
+      #
+      # Evaluate paths
+      #
+      - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
-      parameters:
-        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-        isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
-        isRollingBuild: ${{ variables.isRollingBuild }}
+      - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
+        parameters:
+          isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+          isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
+          isRollingBuild: ${{ variables.isRollingBuild }}
index bfd14f2..cc877ba 100644 (file)
@@ -52,1338 +52,1340 @@ variables:
   - template: /eng/pipelines/common/variables.yml
 
 extends:
-  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
   parameters:
-    jobs:
-    #
-    # Evaluate paths
-    #
-    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-      - template: /eng/pipelines/common/evaluate-default-paths.yml
-
-    #
-    # Build CoreCLR checked
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x86
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_musl_arm
-        - Linux_musl_arm64
-        - Linux_musl_x64
-        - OSX_arm64
-        - Tizen_armel
-        - windows_x86
-        - windows_x64
-        - windows_arm
-        - windows_arm64
-        jobParameters:
-          testGroup: innerloop
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build the whole product using GNU compiler toolchain
-    # When CoreCLR, Mono, Libraries, Installer and src/tests are changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        container: debian-11-gcc12-amd64-20220511124845-b7a6185
-        jobParameters:
-          testGroup: innerloop
-          compilerName: gcc
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build CoreCLR OSX_x64 checked
-    # Only when CoreCLR or Libraries is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build CoreCLR release
-    # Always as they are needed by Installer and we always build and test the Installer.
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: release
-        platforms:
-        - OSX_arm64
-        - OSX_x64
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_musl_x64
-        - Linux_musl_arm
-        - Linux_musl_arm64
-        - windows_x64
-        - windows_x86
-        - windows_arm
-        - windows_arm64
-        - FreeBSD_x64
-        jobParameters:
-          testGroup: innerloop
-          # Mono/runtimetests also need this, but skip for wasm
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build CoreCLR Formatting Job
-    # Only when CoreCLR is changed, and only in the 'main' branch (no release branches;
-    # both Rolling and PR builds).
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml
-        platforms:
-        - Linux_x64
-        - windows_x64
-        jobParameters:
-          condition: >-
-            and(
+    stages:
+    - stage: Build
+      jobs:
+      #
+      # Evaluate paths
+      #
+      - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+        - template: /eng/pipelines/common/evaluate-default-paths.yml
+
+      #
+      # Build CoreCLR checked
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x86
+          - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_musl_arm
+          - Linux_musl_arm64
+          - Linux_musl_x64
+          - OSX_arm64
+          - Tizen_armel
+          - windows_x86
+          - windows_x64
+          - windows_arm
+          - windows_arm64
+          jobParameters:
+            testGroup: innerloop
+            condition: >-
               or(
-                eq(variables['Build.SourceBranchName'], 'main'),
-                eq(variables['System.PullRequest.TargetBranch'], 'main')),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build the whole product using GNU compiler toolchain
+      # When CoreCLR, Mono, Libraries, Installer and src/tests are changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          container: debian-11-gcc12-amd64-20220511124845-b7a6185
+          jobParameters:
+            testGroup: innerloop
+            compilerName: gcc
+            condition: >-
               or(
-                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true),
-                eq(variables['isRollingBuild'], true)))
-
-    #
-    # CoreCLR NativeAOT debug build and smoke tests
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: debug
-        platforms:
-        - Linux_x64
-        - windows_x64
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: NativeAOT
-          buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
-          extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isFullMatrix'], true))
-
-    #
-    # CoreCLR NativeAOT checked build and smoke tests
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: checked
-        platforms:
-        - windows_x64
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: NativeAOT
-          buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
-          extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isFullMatrix'], true))
-
-    #
-    # CoreCLR NativeAOT release build and smoke tests
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        - windows_x64
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          timeoutInMinutes: 120
-          nameSuffix: NativeAOT
-          buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
-          extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isFullMatrix'], true))
-
-    #
-    # CoreCLR NativeAOT release build and libraries tests
-    # Only when CoreCLR or library is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        platforms:
-        - windows_arm64
-        - Linux_arm64
-        - OSX_arm64
-        jobParameters:
-          testGroup: innerloop
-          isSingleFile: true
-          nameSuffix: NativeAOT
-          buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true
-          timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours
-          # extra steps, run tests
-          extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-            testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(variables['isFullMatrix'], true))
-
-    # Build and test clr tools
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_x64
-        jobParameters:
-          testGroup: clrTools
-          timeoutInMinutes: 120
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    # Build Mono AOT offset headers once, for consumption elsewhere
-    # Only when mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
-        buildConfig: release
-        platforms:
-        - Android_x64
-        #- Browser_wasm - unused
-        - tvOS_arm64
-        - iOS_arm64
-        - MacCatalyst_x64
-        jobParameters:
-          isOfficialBuild: ${{ variables.isOfficialBuild }}
-          # needed by crossaot
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    # Build the whole product using Mono runtime
-    # Only when libraries, mono or installer are changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        runtimeFlavor: mono
-        platforms:
-        - tvOSSimulator_x64
-        - iOSSimulator_x86
-        - Linux_arm
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - iOS_arm
-        - Linux_musl_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # WebAssembly legs
-    #
-    - template: /eng/pipelines/common/templates/wasm-library-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        buildAndRunWasi: true
-        alwaysRun: ${{ variables.isRollingBuild }}
-        scenarios:
-          - normal
-          - WasmTestOnBrowser
-
-    - template: /eng/pipelines/common/templates/wasm-library-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm_win
-        alwaysRun: ${{ variables.isRollingBuild }}
-        scenarios:
-          - WasmTestOnBrowser
-
-    # EAT Library tests - only run on linux
-    - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        nameSuffix: _EAT
-        runAOT: false
-        shouldRunSmokeOnly: false
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    # AOT Library tests
-    - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        nameSuffix: _AOT
-        runAOT: true
-        shouldRunSmokeOnly: true
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm_win
-        nameSuffix: _AOT
-        runAOT: true
-        shouldRunSmokeOnly: true
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    # Wasm.Build.Tests
-    - template: /eng/pipelines/common/templates/wasm-build-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-          - Browser_wasm_win
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    # Wasm Debugger tests
-    - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-          - Browser_wasm_win
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    # Wasm runtime tests
-    - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    # BUILD ONLY - Wasm Threading Legs
-    - template: /eng/pipelines/common/templates/wasm-build-only.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        nameSuffix: _Threading
-        extraBuildArgs: /p:WasmEnableThreads=true
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    - template: /eng/pipelines/common/templates/wasm-build-only.yml
-      parameters:
-        platforms:
-          - Browser_wasm
-        nameSuffix: _Threading_PerfTracing
-        extraBuildArgs: /p:WasmEnablePerfTracing=true
-        alwaysRun: ${{ variables.isRollingBuild }}
-
-    #
-    # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
-    # Build the whole product using Mono and run libraries tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-          - iOS_arm64
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build CoreCLR OSX_x64 checked
+      # Only when CoreCLR or Libraries is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_x64
+          jobParameters:
+            testGroup: innerloop
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build CoreCLR release
+      # Always as they are needed by Installer and we always build and test the Installer.
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: release
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_musl_x64
+          - Linux_musl_arm
+          - Linux_musl_arm64
+          - windows_x64
+          - windows_x86
+          - windows_arm
+          - windows_arm64
+          - FreeBSD_x64
+          jobParameters:
+            testGroup: innerloop
+            # Mono/runtimetests also need this, but skip for wasm
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build CoreCLR Formatting Job
+      # Only when CoreCLR is changed, and only in the 'main' branch (no release branches;
+      # both Rolling and PR builds).
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml
+          platforms:
+          - Linux_x64
+          - windows_x64
+          jobParameters:
+            condition: >-
+              and(
+                or(
+                  eq(variables['Build.SourceBranchName'], 'main'),
+                  eq(variables['System.PullRequest.TargetBranch'], 'main')),
+                or(
+                  eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true),
+                  eq(variables['isRollingBuild'], true)))
+
+      #
+      # CoreCLR NativeAOT debug build and smoke tests
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: debug
+          platforms:
+          - Linux_x64
+          - windows_x64
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: NativeAOT
+            buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
+            extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isFullMatrix'], true))
+
+      #
+      # CoreCLR NativeAOT checked build and smoke tests
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: checked
+          platforms:
+          - windows_x64
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: NativeAOT
+            buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
+            extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isFullMatrix'], true))
+
+      #
+      # CoreCLR NativeAOT release build and smoke tests
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          - windows_x64
+          - OSX_x64
+          jobParameters:
+            testGroup: innerloop
+            timeoutInMinutes: 120
+            nameSuffix: NativeAOT
+            buildArgs: -s clr.aot+libs -rc $(_BuildConfig) -lc Release
+            extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isFullMatrix'], true))
+
+      #
+      # CoreCLR NativeAOT release build and libraries tests
+      # Only when CoreCLR or library is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          platforms:
+          - windows_arm64
+          - Linux_arm64
+          - OSX_arm64
+          jobParameters:
+            testGroup: innerloop
+            isSingleFile: true
+            nameSuffix: NativeAOT
+            buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true
+            timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours
+            # extra steps, run tests
+            extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+              testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(variables['isFullMatrix'], true))
+
+      # Build and test clr tools
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_x64
+          jobParameters:
+            testGroup: clrTools
+            timeoutInMinutes: 120
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      # Build Mono AOT offset headers once, for consumption elsewhere
+      # Only when mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
+          buildConfig: release
+          platforms:
+          - Android_x64
+          #- Browser_wasm - unused
           - tvOS_arm64
-        variables:
-          # map dependencies variables to local variables
-          - name: librariesContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
-          - name: monoContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true
-          timeoutInMinutes: 180
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          # extra steps, run tests
-          extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-            testRunNamePrefixSuffix: Mono_$(_BuildConfig)
-            extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
+          - iOS_arm64
+          - MacCatalyst_x64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            # needed by crossaot
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      # Build the whole product using Mono runtime
+      # Only when libraries, mono or installer are changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          runtimeFlavor: mono
+          platforms:
+          - tvOSSimulator_x64
+          - iOSSimulator_x86
+          - Linux_arm
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - iOS_arm
+          - Linux_musl_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
             condition: >-
               or(
-              eq(variables['librariesContainsChange'], true),
-              eq(variables['monoContainsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # MacCatalyst interp - requires AOT Compilation and Interp flags
-    # Build the whole product using Mono and run libraries tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - MacCatalyst_x64
-        - ${{ if eq(variables['isRollingBuild'], true) }}:
-          - MacCatalyst_arm64
-        variables:
-          # map dependencies variables to local variables
-          - name: librariesContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
-          - name: monoContainsChange
-            value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono
-          buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true
-          timeoutInMinutes: 180
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          # extra steps, run tests
-          extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-            testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # WebAssembly legs
+      #
+      - template: /eng/pipelines/common/templates/wasm-library-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          buildAndRunWasi: true
+          alwaysRun: ${{ variables.isRollingBuild }}
+          scenarios:
+            - normal
+            - WasmTestOnBrowser
+
+      - template: /eng/pipelines/common/templates/wasm-library-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm_win
+          alwaysRun: ${{ variables.isRollingBuild }}
+          scenarios:
+            - WasmTestOnBrowser
+
+      # EAT Library tests - only run on linux
+      - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          nameSuffix: _EAT
+          runAOT: false
+          shouldRunSmokeOnly: false
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      # AOT Library tests
+      - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          nameSuffix: _AOT
+          runAOT: true
+          shouldRunSmokeOnly: true
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm_win
+          nameSuffix: _AOT
+          runAOT: true
+          shouldRunSmokeOnly: true
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      # Wasm.Build.Tests
+      - template: /eng/pipelines/common/templates/wasm-build-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+            - Browser_wasm_win
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      # Wasm Debugger tests
+      - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+            - Browser_wasm_win
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      # Wasm runtime tests
+      - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      # BUILD ONLY - Wasm Threading Legs
+      - template: /eng/pipelines/common/templates/wasm-build-only.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          nameSuffix: _Threading
+          extraBuildArgs: /p:WasmEnableThreads=true
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      - template: /eng/pipelines/common/templates/wasm-build-only.yml
+        parameters:
+          platforms:
+            - Browser_wasm
+          nameSuffix: _Threading_PerfTracing
+          extraBuildArgs: /p:WasmEnablePerfTracing=true
+          alwaysRun: ${{ variables.isRollingBuild }}
+
+      #
+      # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
+      # Build the whole product using Mono and run libraries tests
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - iOS_arm64
+            - tvOS_arm64
+          variables:
+            # map dependencies variables to local variables
+            - name: librariesContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+            - name: monoContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true
+            timeoutInMinutes: 180
             condition: >-
               or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            # extra steps, run tests
+            extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+              testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+              extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
+              condition: >-
+                or(
                 eq(variables['librariesContainsChange'], true),
                 eq(variables['monoContainsChange'], true),
                 eq(variables['isRollingBuild'], true))
 
-    #
-    # Build Mono and Installer on LLVMJIT mode
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMJIT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMJIT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono and Installer on LLVMAOT mode
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMAOT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        runtimeFlavor: mono
-        platforms:
-        - OSX_x64
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMAOT
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                    /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono debug
-    # Only when mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: debug
-        platforms:
-        - OSX_x64
-        - OSX_arm64
-        - Linux_x64
-        - Linux_arm64
-        # - Linux_musl_arm64
-        - windows_x64
-        - windows_x86
-        # - windows_arm
-        # - windows_arm64
-        jobParameters:
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono release AOT cross-compilers
-    # Only when mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        # - Linux_arm64
-        # - Linux_musl_arm64
-        - Windows_x64
-        # - windows_x86
-        # - windows_arm
-        # - windows_arm64
-        jobParameters:
-          runtimeVariant: crossaot
-          dependsOn:
-          - mono_android_offsets
-          #- mono_browser_offsets - unused
-          monoCrossAOTTargetOS:
-          - Android
-          #- Browser - unused
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - OSX_x64
-        jobParameters:
-          runtimeVariant: crossaot
-          dependsOn:
-          - mono_android_offsets
-          #- mono_browser_offsets - unused
-          - mono_tvos_offsets
-          - mono_ios_offsets
-          - mono_maccatalyst_offsets
-          monoCrossAOTTargetOS:
-          - Android
-          #- Browser - unused
-          - tvOS
-          - iOS
-          - MacCatalyst
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono release
-    # Only when libraries or mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        # - Linux_musl_arm64
-        - windows_x64
-        - windows_x86
-        # - windows_arm
-        # - windows_arm64
-        jobParameters:
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono release
-    # Only when libraries, mono, or the runtime tests changed
-    # Currently only these architectures are needed for the runtime tests.
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - OSX_x64
-        - Linux_arm64
-        jobParameters:
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build Mono release with LLVM AOT
-    # Only when mono, or the runtime tests changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/mono/templates/build-job.yml
-        runtimeFlavor: mono
-        buildConfig: release
-        platforms:
-        - Linux_x64
-        - Linux_arm64
-        jobParameters:
-          runtimeVariant: llvmaot
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build libraries using live CoreLib
-    # These set of libraries are built always no matter what changed
-    # The reason for that is because Corelib and Installer needs it and
-    # These are part of the test matrix for Libraries changes.
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_arm
-        - Linux_musl_arm
-        - Linux_musl_arm64
-        - windows_arm
-        - windows_arm64
-        - windows_x86
-        jobParameters:
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        - Linux_arm64
-        - Linux_musl_x64
-        - Linux_x64
-        - OSX_arm64
-        - OSX_x64
-        - windows_x64
-        - FreeBSD_x64
-        jobParameters:
-          testScope: innerloop
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Libraries debug build that only runs when coreclr is changed
-    # Only do this on PR builds since we use the Release builds for these test runs in CI
-    # and those are already built above
-    #
-    - ${{ if eq(variables['isRollingBuild'], false) }}:
+      #
+      # MacCatalyst interp - requires AOT Compilation and Interp flags
+      # Build the whole product using Mono and run libraries tests
+      #
       - template: /eng/pipelines/common/platform-matrix.yml
         parameters:
-          jobTemplate: /eng/pipelines/libraries/build-job.yml
-          buildConfig: Debug
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
           platforms:
-          - windows_x86
+          - MacCatalyst_x64
+          - ${{ if eq(variables['isRollingBuild'], true) }}:
+            - MacCatalyst_arm64
+          variables:
+            # map dependencies variables to local variables
+            - name: librariesContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+            - name: monoContainsChange
+              value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono
+            buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true
+            timeoutInMinutes: 180
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            # extra steps, run tests
+            extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+              testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+              condition: >-
+                or(
+                  eq(variables['librariesContainsChange'], true),
+                  eq(variables['monoContainsChange'], true),
+                  eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono and Installer on LLVMJIT mode
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - OSX_x64
           jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMJIT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
             condition: >-
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true)
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
 
-    #
-    # Libraries release build that only runs when coreclr is changed in PRs
-    # We need these for checked coreclr + release libraries tests runs.
-    #
-    - ${{ if eq(variables['isRollingBuild'], false) }}:
       - template: /eng/pipelines/common/platform-matrix.yml
         parameters:
-          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMJIT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono and Installer on LLVMAOT mode
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
           buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+          - Linux_x64
+          - Linux_arm64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMAOT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          runtimeFlavor: mono
+          platforms:
+          - OSX_x64
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMAOT
+            buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono debug
+      # Only when mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: debug
+          platforms:
+          - OSX_x64
+          - OSX_arm64
+          - Linux_x64
+          - Linux_arm64
+          # - Linux_musl_arm64
+          - windows_x64
+          - windows_x86
+          # - windows_arm
+          # - windows_arm64
+          jobParameters:
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono release AOT cross-compilers
+      # Only when mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          # - Linux_arm64
+          # - Linux_musl_arm64
+          - Windows_x64
+          # - windows_x86
+          # - windows_arm
+          # - windows_arm64
+          jobParameters:
+            runtimeVariant: crossaot
+            dependsOn:
+            - mono_android_offsets
+            #- mono_browser_offsets - unused
+            monoCrossAOTTargetOS:
+            - Android
+            #- Browser - unused
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - OSX_x64
+          jobParameters:
+            runtimeVariant: crossaot
+            dependsOn:
+            - mono_android_offsets
+            #- mono_browser_offsets - unused
+            - mono_tvos_offsets
+            - mono_ios_offsets
+            - mono_maccatalyst_offsets
+            monoCrossAOTTargetOS:
+            - Android
+            #- Browser - unused
+            - tvOS
+            - iOS
+            - MacCatalyst
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono release
+      # Only when libraries or mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
           platforms:
           - Linux_x64
+          # - Linux_musl_arm64
           - windows_x64
+          - windows_x86
+          # - windows_arm
+          # - windows_arm64
+          jobParameters:
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono release
+      # Only when libraries, mono, or the runtime tests changed
+      # Currently only these architectures are needed for the runtime tests.
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - OSX_x64
+          - Linux_arm64
+          jobParameters:
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build Mono release with LLVM AOT
+      # Only when mono, or the runtime tests changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          - Linux_arm64
           jobParameters:
+            runtimeVariant: llvmaot
             condition: >-
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true)
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: Release
-        platforms:
-        - windows_x86
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          framework: net48
-          runTests: true
-          testScope: innerloop
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        - windows_x64
-        jobParameters:
-          framework: allConfigurations
-          runTests: true
-          useHelix: false
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Installer Build and Test
-    # These are always built since they only take like 15 minutes
-    # we expect these to be done before we finish libraries or coreclr testing.
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build libraries using live CoreLib
+      # These set of libraries are built always no matter what changed
+      # The reason for that is because Corelib and Installer needs it and
+      # These are part of the test matrix for Libraries changes.
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_arm
           - Linux_musl_arm
           - Linux_musl_arm64
-          - windows_x86
           - windows_arm
           - windows_arm64
-          - Linux_arm
-        jobParameters:
-          liveRuntimeBuildConfig: release
-          liveLibrariesBuildConfig: Release
-          runOnlyIfDependenciesSucceeded: true
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
-        buildConfig: Release
-        platforms:
-          - OSX_arm64
-          - OSX_x64
-          - Linux_x64
+          - windows_x86
+          jobParameters:
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
           - Linux_arm64
           - Linux_musl_x64
+          - Linux_x64
+          - OSX_arm64
+          - OSX_x64
           - windows_x64
           - FreeBSD_x64
-        jobParameters:
-          liveRuntimeBuildConfig: release
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          runOnlyIfDependenciesSucceeded: true
-          condition:
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # CoreCLR Test builds using live libraries release build
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: checked
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # CoreCLR Test executions using live libraries
-    # Only when CoreCLR is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - Linux_arm
-        - windows_x86
-        - windows_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: Release
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_x64
-        - Linux_x64
-        - Linux_arm64
-        - windows_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: checked
-        platforms:
-        - OSX_arm64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Mono Test builds with CoreCLR runtime tests using live libraries debug build
-    # Only when Mono is changed
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        platforms:
-        - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
-        jobParameters:
-          testGroup: innerloop
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        platforms:
-        - windows_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-          liveRuntimeBuildConfig: release
-          runtimeVariant: minijit
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Build the whole product using Mono and run runtime tests
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
+          jobParameters:
+            testScope: innerloop
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Libraries debug build that only runs when coreclr is changed
+      # Only do this on PR builds since we use the Release builds for these test runs in CI
+      # and those are already built above
+      #
+      - ${{ if eq(variables['isRollingBuild'], false) }}:
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/libraries/build-job.yml
+            buildConfig: Debug
+            platforms:
+            - windows_x86
+            jobParameters:
+              condition: >-
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true)
+
+      #
+      # Libraries release build that only runs when coreclr is changed in PRs
+      # We need these for checked coreclr + release libraries tests runs.
+      #
+      - ${{ if eq(variables['isRollingBuild'], false) }}:
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/libraries/build-job.yml
+            buildConfig: Release
+            platforms:
+            - Linux_x64
+            - windows_x64
+            jobParameters:
+              condition: >-
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true)
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: Release
+          platforms:
+          - windows_x86
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          jobParameters:
+            framework: net48
+            runTests: true
+            testScope: innerloop
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+          - windows_x64
+          jobParameters:
+            framework: allConfigurations
+            runTests: true
+            useHelix: false
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Installer Build and Test
+      # These are always built since they only take like 15 minutes
+      # we expect these to be done before we finish libraries or coreclr testing.
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+            - Linux_musl_arm
+            - Linux_musl_arm64
+            - windows_x86
+            - windows_arm
+            - windows_arm64
+            - Linux_arm
+          jobParameters:
+            liveRuntimeBuildConfig: release
+            liveLibrariesBuildConfig: Release
+            runOnlyIfDependenciesSucceeded: true
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
+          buildConfig: Release
+          platforms:
+            - OSX_arm64
+            - OSX_x64
+            - Linux_x64
+            - Linux_arm64
+            - Linux_musl_x64
+            - windows_x64
+            - FreeBSD_x64
+          jobParameters:
+            liveRuntimeBuildConfig: release
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            runOnlyIfDependenciesSucceeded: true
+            condition:
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # CoreCLR Test builds using live libraries release build
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: checked
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # CoreCLR Test executions using live libraries
+      # Only when CoreCLR is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - Linux_arm
+          - windows_x86
+          - windows_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: Release
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
           - OSX_x64
-        variables:
-          - name: timeoutPerTestInMinutes
-            value: 60
-          - name: timeoutPerTestCollectionInMinutes
-            value: 180
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests
-          runtimeVariant: minijit
-          buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release
-          timeoutInMinutes: 180
-          condition: >-
-                or(
-                  eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-                  eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-                  eq(variables['isRollingBuild'], true))
+          - Linux_x64
+          - Linux_arm64
+          - windows_x64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: checked
+          platforms:
+          - OSX_arm64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Mono Test builds with CoreCLR runtime tests using live libraries debug build
+      # Only when Mono is changed
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          platforms:
+          - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+          jobParameters:
+            testGroup: innerloop
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          platforms:
+          - windows_x64
+          helixQueueGroup: pr
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          jobParameters:
+            testGroup: innerloop
+            liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+            liveRuntimeBuildConfig: release
+            runtimeVariant: minijit
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Build the whole product using Mono and run runtime tests
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - OSX_x64
+          variables:
+            - name: timeoutPerTestInMinutes
+              value: 60
+            - name: timeoutPerTestCollectionInMinutes
+              value: 180
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests
+            runtimeVariant: minijit
+            buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release
+            timeoutInMinutes: 180
+            condition: >-
+                  or(
+                    eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                    eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                    eq(variables['isRollingBuild'], true))
+
+            extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+            testRunNamePrefixSuffix: Mono_Release
+
+      #
+      # Mono CoreCLR runtime Test executions using live libraries in interpreter mode
+      # Only when Mono is changed
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - OSX_x64
+          variables:
+            - name: timeoutPerTestInMinutes
+              value: 60
+            - name: timeoutPerTestCollectionInMinutes
+              value: 180
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests
+            runtimeVariant: monointerpreter
+            buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release
+            timeoutInMinutes: 180
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+            testRunNamePrefixSuffix: Mono_Release
+      #
+      # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
+      # Only when Mono is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - Linux_x64
+            # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation
+            #- Linux_arm64
+          variables:
+            - name: timeoutPerTestInMinutes
+              value: 60
+            - name: timeoutPerTestCollectionInMinutes
+              value: 180
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests
+            runtimeVariant: llvmaot
+            buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true 
+            timeoutInMinutes: 180
+
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+            testRunNamePrefixSuffix: Mono_Release
+
+      #
+      # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
+      # Only when Mono is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          buildConfig: Release
+          runtimeFlavor: mono
+          platforms:
+            - Linux_x64
+            - Linux_arm64
+          variables:
+            - name: timeoutPerTestInMinutes
+              value: 60
+            - name: timeoutPerTestCollectionInMinutes
+              value: 180
+          jobParameters:
+            testGroup: innerloop
+            nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests
+            runtimeVariant: llvmfullaot
+            buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true 
+            timeoutInMinutes: 300
 
-          extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-          testRunNamePrefixSuffix: Mono_Release
-
-    #
-    # Mono CoreCLR runtime Test executions using live libraries in interpreter mode
-    # Only when Mono is changed
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+            extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+            extraStepsParameters:
+              creator: dotnet-bot
+            testRunNamePrefixSuffix: Mono_Release
+
+      #
+      # Libraries Release Test Execution against a release mono runtime.
+      # Only when libraries or mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          runtimeFlavor: mono
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+          # - windows_x64
           - OSX_x64
-        variables:
-          - name: timeoutPerTestInMinutes
-            value: 60
-          - name: timeoutPerTestCollectionInMinutes
-            value: 180
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests
-          runtimeVariant: monointerpreter
-          buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release
-          timeoutInMinutes: 180
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-          testRunNamePrefixSuffix: Mono_Release
-    #
-    # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
-    # Only when Mono is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
+          - Linux_arm64
+          - Linux_x64
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          jobParameters:
+            isOfficialBuild: false
+            runtimeDisplayName: mono
+            testScope: innerloop
+            liveRuntimeBuildConfig: release
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Libraries Release Test Execution against a release mono interpreter runtime.
+      # Only when libraries or mono changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          runtimeFlavor: mono
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+          # - windows_x64
+          #- OSX_x64
           - Linux_x64
-          # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation
-          #- Linux_arm64
-        variables:
-          - name: timeoutPerTestInMinutes
-            value: 60
-          - name: timeoutPerTestCollectionInMinutes
-            value: 180
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests
-          runtimeVariant: llvmaot
-          buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true 
-          timeoutInMinutes: 180
-
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-          testRunNamePrefixSuffix: Mono_Release
-
-    #
-    # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
-    # Only when Mono is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        buildConfig: Release
-        runtimeFlavor: mono
-        platforms:
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          jobParameters:
+            isOfficialBuild: false
+            interpreter: true
+            runtimeDisplayName: mono_interpreter
+            testScope: innerloop
+            liveRuntimeBuildConfig: release
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Libraries Release Test Execution against a release coreclr runtime
+      # Only when the PR contains a libraries change
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - windows_x86
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          jobParameters:
+            isOfficialBuild: false
+            testScope: innerloop
+            liveRuntimeBuildConfig: release
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Libraries Debug Test Execution against a release coreclr runtime
+      # Only when the PR contains a libraries change
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+          - windows_x64
+          - OSX_x64
           - Linux_x64
+          - Linux_musl_x64
+          helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+          jobParameters:
+            isOfficialBuild: false
+            testScope: innerloop
+            liveRuntimeBuildConfig: release
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      # The next three jobs run checked coreclr + <either debug or release in PR> libraries tests.
+      # The matrix looks like the following, where the right columns specify which configurations
+      # the libraries tests are built in.
+      # ________________________________________
+      # | Platform         | PR      | Rolling |
+      # | ---------------- | ------- | ------- |
+      # | linux-arm64      | Debug   | Release |
+      # | windows-x86      | Debug   | Release |
+      # | linux-musl-x64   | Debug   | Release |
+      # | OSX-x64          | Debug   | Release |
+      # | linux-musl-arm   | Release | Release |
+      # | linux-musl-arm64 | Release | Release |
+      # | linux-x64        | Release | Release |
+      # | windows-x64      | Release | Release |
+
+      #
+      # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime
+      # Only when the PR contains a coreclr change
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
           - Linux_arm64
-        variables:
-          - name: timeoutPerTestInMinutes
-            value: 60
-          - name: timeoutPerTestCollectionInMinutes
-            value: 180
-        jobParameters:
-          testGroup: innerloop
-          nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests
-          runtimeVariant: llvmfullaot
-          buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true 
-          timeoutInMinutes: 300
-
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-          extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
-          extraStepsParameters:
-            creator: dotnet-bot
-          testRunNamePrefixSuffix: Mono_Release
-
-    #
-    # Libraries Release Test Execution against a release mono runtime.
-    # Only when libraries or mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        runtimeFlavor: mono
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        # - windows_x64
-        - OSX_x64
-        - Linux_arm64
-        - Linux_x64
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isOfficialBuild: false
-          runtimeDisplayName: mono
-          testScope: innerloop
-          liveRuntimeBuildConfig: release
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Libraries Release Test Execution against a release mono interpreter runtime.
-    # Only when libraries or mono changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        runtimeFlavor: mono
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        # - windows_x64
-        #- OSX_x64
-        - Linux_x64
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isOfficialBuild: false
-          interpreter: true
-          runtimeDisplayName: mono_interpreter
-          testScope: innerloop
-          liveRuntimeBuildConfig: release
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Libraries Release Test Execution against a release coreclr runtime
-    # Only when the PR contains a libraries change
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - windows_x86
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isOfficialBuild: false
-          testScope: innerloop
-          liveRuntimeBuildConfig: release
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Libraries Debug Test Execution against a release coreclr runtime
-    # Only when the PR contains a libraries change
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        - windows_x64
-        - OSX_x64
-        - Linux_x64
-        - Linux_musl_x64
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isOfficialBuild: false
-          testScope: innerloop
-          liveRuntimeBuildConfig: release
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    # The next three jobs run checked coreclr + <either debug or release in PR> libraries tests.
-    # The matrix looks like the following, where the right columns specify which configurations
-    # the libraries tests are built in.
-    # ________________________________________
-    # | Platform         | PR      | Rolling |
-    # | ---------------- | ------- | ------- |
-    # | linux-arm64      | Debug   | Release |
-    # | windows-x86      | Debug   | Release |
-    # | linux-musl-x64   | Debug   | Release |
-    # | OSX-x64          | Debug   | Release |
-    # | linux-musl-arm   | Release | Release |
-    # | linux-musl-arm64 | Release | Release |
-    # | linux-x64        | Release | Release |
-    # | windows-x64      | Release | Release |
-
-    #
-    # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime
-    # Only when the PR contains a coreclr change
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        - Linux_arm64
-        - windows_x86
-        - Linux_musl_x64
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        helixQueueGroup: libraries
-        jobParameters:
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Release Libraries Test Execution against a checked runtime
-    # Only if CoreCLR or Libraries is changed
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_musl_arm
-        - Linux_musl_arm64
-        - Linux_x64
-        - windows_x64
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        helixQueueGroup: libraries
-        jobParameters:
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-        platforms:
-        - OSX_x64
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        helixQueueGroup: libraries
-        jobParameters:
-          testScope: innerloop
-          liveRuntimeBuildConfig: checked
-          condition: >-
-            or(
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-              eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-              eq(variables['isRollingBuild'], true))
-
-    #
-    # Sourcebuild legs
-    # We have 3 important legs for source-build:
-    # - Centos.7 (ensures that RH keeps working)
-    # - Linux-x64 portable (used for dependency flow and downstream PR verification)
-    # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about.
-    #
-    # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI,
-    # Run Linux-x64 in PR.
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Release
-        helixQueueGroup: pr
-        platforms:
-        - SourceBuild_Centos7_x64
-        jobParameters:
-          nameSuffix: Centos7SourceBuild
-          extraStepsParameters:
-            name: SourceBuildPackages
-          timeoutInMinutes: 95
-          condition: eq(variables['isRollingBuild'], true)
-
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Debug
-        helixQueueGroup: pr
-        platforms:
-        - SourceBuild_Banana24_x64
-        jobParameters:
-          nameSuffix: Banana24SourceBuild
-          extraStepsParameters:
-            name: SourceBuildPackages
-          timeoutInMinutes: 95
-          condition: eq(variables['isRollingBuild'], true)
+          - windows_x86
+          - Linux_musl_x64
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          helixQueueGroup: libraries
+          jobParameters:
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Release Libraries Test Execution against a checked runtime
+      # Only if CoreCLR or Libraries is changed
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_musl_arm
+          - Linux_musl_arm64
+          - Linux_x64
+          - windows_x64
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          helixQueueGroup: libraries
+          jobParameters:
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+          buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          platforms:
+          - OSX_x64
+          helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+          helixQueueGroup: libraries
+          jobParameters:
+            testScope: innerloop
+            liveRuntimeBuildConfig: checked
+            condition: >-
+              or(
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+                eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+                eq(variables['isRollingBuild'], true))
+
+      #
+      # Sourcebuild legs
+      # We have 3 important legs for source-build:
+      # - Centos.7 (ensures that RH keeps working)
+      # - Linux-x64 portable (used for dependency flow and downstream PR verification)
+      # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about.
+      #
+      # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI,
+      # Run Linux-x64 in PR.
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          helixQueueGroup: pr
+          platforms:
+          - SourceBuild_Centos7_x64
+          jobParameters:
+            nameSuffix: Centos7SourceBuild
+            extraStepsParameters:
+              name: SourceBuildPackages
+            timeoutInMinutes: 95
+            condition: eq(variables['isRollingBuild'], true)
+
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Debug
+          helixQueueGroup: pr
+          platforms:
+          - SourceBuild_Banana24_x64
+          jobParameters:
+            nameSuffix: Banana24SourceBuild
+            extraStepsParameters:
+              name: SourceBuildPackages
+            timeoutInMinutes: 95
+            condition: eq(variables['isRollingBuild'], true)