Use AzDO Pipeline Resources to define our build Docker containers (#75473)
authorJeremy Koritzinsky <jekoritz@microsoft.com>
Fri, 7 Oct 2022 17:47:28 +0000 (10:47 -0700)
committerGitHub <noreply@github.com>
Fri, 7 Oct 2022 17:47:28 +0000 (10:47 -0700)
84 files changed:
docs/workflow/building/coreclr/linux-instructions.md
eng/pipelines/common/build-coreclr-and-libraries-job.yml
eng/pipelines/common/global-build-job.yml
eng/pipelines/common/platform-matrix.yml
eng/pipelines/common/templates/pipeline-with-resources.yml [new file with mode: 0644]
eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
eng/pipelines/common/templates/runtimes/run-test-job.yml
eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
eng/pipelines/common/templates/runtimes/xplat-job.yml
eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml [new file with mode: 0644]
eng/pipelines/common/xplat-setup.yml
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-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/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/templates/build-jit-job.yml
eng/pipelines/coreclr/templates/build-job.yml
eng/pipelines/coreclr/templates/crossgen2-comparison-build-job.yml
eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml
eng/pipelines/coreclr/templates/format-job.yml
eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
eng/pipelines/coreclr/tieringtest.yml
eng/pipelines/global-build.yml
eng/pipelines/installer/jobs/build-job.yml
eng/pipelines/libraries/base-job.yml
eng/pipelines/libraries/build-job.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/mono/templates/build-job.yml
eng/pipelines/runtime-android-grpc-client-tests.yml
eng/pipelines/runtime-cet.yml
eng/pipelines/runtime-community.yml
eng/pipelines/runtime-extra-platforms.yml
eng/pipelines/runtime-linker-tests.yml
eng/pipelines/runtime-llvm.yml
eng/pipelines/runtime-official.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
eng/pipelines/runtimelab.yml

index dac415c..5f50c16 100644 (file)
@@ -45,7 +45,7 @@ Note that instructions on building the crossrootfs location can be found at [cro
 Docker Images
 =============
 
-This table of images might often become stale as we change our images as our requirements change. The images used for our our official builds can be found in [the platform matrix](../../../../eng/pipelines/common/platform-matrix.yml) of our Azure DevOps builds under the `container` key of the platform you plan to build.
+This table of images might often become stale as we change our images as our requirements change. The images used for our our official builds can be found in [the pipeline resources](../../../../eng/pipelines/common/templates/pipeline-with-resources.yml) of our Azure DevOps builds under the `container` key of the platform you plan to build.
 
 | OS                          | Target Arch     | Image location                                                                                       | crossrootfs location | Clang Version |
 | --------------------------- | --------------- | ---------------------------------------------------------------------------------------------------- | -------------------- | ------------- |
index 59457be..31adbc4 100644 (file)
@@ -7,7 +7,6 @@ parameters:
   container: ''
   testGroup: ''
   crossBuild: false
-  crossrootfsDir: ''
   timeoutInMinutes: ''
   signBinaries: false
   stagedBuild: false
@@ -27,7 +26,6 @@ jobs:
     container: ${{ parameters.container }}
     testGroup: ${{ parameters.testGroup }}
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
     timeoutInminutes: ${{ parameters.timeoutInMinutes }}
     signBinaries: ${{ parameters.signBinaries }}
     stagedBuild: ${{ parameters.stagedBuild }}
@@ -46,7 +44,6 @@ jobs:
     container: ${{ parameters.container }}
     testGroup: ${{ parameters.testGroup }}
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
     timeoutInminutes: ${{ parameters.timeoutInMinutes }}
     variables: ${{ parameters.variables }}
     pool: ${{ parameters.pool }}
index 964528e..171d719 100644 (file)
@@ -8,7 +8,6 @@ parameters:
   osSubgroup: ''
   container: ''
   crossBuild: false
-  crossrootfsDir: ''
   variables: []
   targetRid: ''
   timeoutInMinutes: ''
index d66fa5c..65fc869 100644 (file)
@@ -36,16 +36,13 @@ jobs:
       targetRid: linux-arm
       platform: Linux_arm
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-arm-20220907130538-70ed2e8
-        registry: mcr
+      container: Linux_arm
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/arm'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux armv6
@@ -60,16 +57,13 @@ jobs:
       targetRid: linux-armv6
       platform: Linux_armv6
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-20.04-cross-armv6-raspbian-10-20211208135931-e6e3ac4
-        registry: mcr
+      container: Linux_armv6
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/armv6'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux arm64
@@ -85,19 +79,18 @@ jobs:
       targetRid: linux-arm64
       platform: Linux_arm64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        ${{ if eq(parameters.container, '') }}:
-          image: ubuntu-18.04-cross-arm64-20220907130538-70ed2e8
-        ${{ if ne(parameters.container, '') }}:
+      ${{ if eq(parameters.container, '') }}:
+        container: Linux_arm64
+      ${{ if ne(parameters.container, '') }}:
+        container:
           image: ${{ parameters.container }}
-        registry: mcr
+          registry: mcr
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/arm64'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux musl x64
@@ -114,9 +107,7 @@ jobs:
       targetRid: linux-musl-x64
       platform: Linux_musl_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: alpine-3.13-WithNode-20210910135845-c401c85
-        registry: mcr
+      container: Linux_musl_x64
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -138,16 +129,13 @@ jobs:
       targetRid: linux-musl-arm
       platform: Linux_musl_arm
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-arm-alpine-20220915134743-78f7860
-        registry: mcr
+      container: Linux_musl_arm
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/arm'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux musl arm64
@@ -164,16 +152,13 @@ jobs:
       targetRid: linux-musl-arm64
       platform: Linux_musl_arm64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-22.04-cross-arm64-alpine-20220915142421-44c622d
-        registry: mcr
+      container: Linux_musl_arm64
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/arm64'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux Bionic arm64
@@ -190,9 +175,7 @@ jobs:
       targetRid: linux-bionic-arm64
       platform: Linux_bionic_arm64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         # We build on Linux, but the test queue runs Windows, so
@@ -217,9 +200,7 @@ jobs:
       targetRid: linux-bionic-x64
       platform: Linux_bionic_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -240,12 +221,12 @@ jobs:
       targetRid: linux-x64
       platform: Linux_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        ${{ if eq(parameters.container, '') }}:
-          image: centos-7-20210714125435-9b5bbc2
-        ${{ if ne(parameters.container, '') }}:
+      ${{ if eq(parameters.container, '') }}:
+        container: Linux_x64
+      ${{ if ne(parameters.container, '') }}:
+        container:
           image: ${{ parameters.container }}
-        registry: mcr
+          registry: mcr
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -266,16 +247,13 @@ jobs:
       targetRid: linux-x86
       platform: Linux_x86
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-x86-linux-20211022152824-f853169
-        registry: mcr
+      container: Linux_x86
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/x86'
         disableClrTest: true
         ${{ insert }}: ${{ parameters.jobParameters }}
 
@@ -342,9 +320,7 @@ jobs:
       targetRid: linux-x64
       platform: Linux_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: centos-7-source-build-20210714125450-5d87b80
-        registry: mcr
+      container: SourceBuild_Linux_x64
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -367,16 +343,13 @@ jobs:
       targetRid: linux-s390x
       platform: Linux_s390x
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-s390x-20201102145728-d6e0352
-        registry: mcr
+      container: Linux_s390x
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/s390x'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Linux PPC64le
@@ -392,16 +365,13 @@ jobs:
       targetRid: linux-ppc64le
       platform: Linux_ppc64le
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-ppc64le-20220531132048-b9de666
-        registry: mcr
+      container: Linux_ppc64le
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/ppc64le'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # WebAssembly
@@ -417,9 +387,7 @@ jobs:
       targetRid: browser-wasm
       platform: Browser_wasm
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-webassembly-20220531132048-00a561c
-        registry: mcr
+      container: Browser_wasm
       jobParameters:
         hostedOs: Linux
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
@@ -440,9 +408,7 @@ jobs:
       targetRid: browser-wasm
       platform: Browser_wasm_firefox
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-webassembly-20220531132048-00a561c
-        registry: mcr
+      container: Browser_wasm
       jobParameters:
         hostedOs: Linux
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
@@ -482,15 +448,12 @@ jobs:
       targetRid: freebsd-x64
       platform: FreeBSD_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-freebsd-12-20210917001307-f13d79e
-        registry: mcr
+      container: FreeBSD_x64
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/x64'
         ${{ insert }}: ${{ parameters.jobParameters }}
 
 # Android x64
@@ -506,9 +469,7 @@ jobs:
       targetRid: android-x64
       platform: Android_x64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -529,9 +490,7 @@ jobs:
       targetRid: android-x86
       platform: Android_x86
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -552,9 +511,7 @@ jobs:
       targetRid: android-arm
       platform: Android_arm
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -575,9 +532,7 @@ jobs:
       targetRid: android-arm64
       platform: Android_arm64
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-android-20220808192756-8fcaabc
-        registry: mcr
+      container: Linux_bionic
       jobParameters:
         runtimeFlavor: mono
         stagedBuild: ${{ parameters.stagedBuild }}
@@ -840,16 +795,13 @@ jobs:
       targetRid: tizen-armel
       platform: Tizen_armel
       shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-      container:
-        image: ubuntu-18.04-cross-armel-tizen-20210719212651-8b02f56
-        registry: mcr
+      container: Tizen_armel
       jobParameters:
         runtimeFlavor: ${{ parameters.runtimeFlavor }}
         stagedBuild: ${{ parameters.stagedBuild }}
         buildConfig: ${{ parameters.buildConfig }}
         helixQueueGroup: ${{ parameters.helixQueueGroup }}
         crossBuild: true
-        crossrootfsDir: '/crossrootfs/armel'
         disableClrTest: true
         ${{ insert }}: ${{ parameters.jobParameters }}
 
diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml
new file mode 100644 (file)
index 0000000..e9ee881
--- /dev/null
@@ -0,0 +1,79 @@
+parameters:
+  - name: stages
+    type: stageList
+
+resources:
+  containers:
+    - container: Linux_arm
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-arm-20220907130538-70ed2e8
+      env:
+        ROOTFS_DIR: /crossrootfs/arm
+
+    - container: Linux_armv6
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-cross-armv6-raspbian-10-20211208135931-e6e3ac4
+      env:
+        ROOTFS_DIR: /crossrootfs/armv6
+
+    - container: Linux_arm64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-arm64-20220907130538-70ed2e8
+      env:
+        ROOTFS_DIR: /crossrootfs/arm64
+
+    - container: Linux_musl_x64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.13-WithNode-20210910135845-c401c85
+
+    - container: Linux_musl_arm
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-arm-alpine-20220915134743-78f7860
+      env:
+        ROOTFS_DIR: /crossrootfs/arm
+
+    - container: Linux_musl_arm64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-arm64-alpine-20220915142421-44c622d
+      env:
+        ROOTFS_DIR: /crossrootfs/arm64
+    # This container contains all required toolsets to build for Android and for Linux with bionic libc.
+
+    - container: Linux_bionic
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-android-20220808192756-8fcaabc
+
+    - container: Linux_x64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-20210714125435-9b5bbc2
+
+    - container: Linux_x86
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-x86-linux-20211022152824-f853169
+      env:
+        ROOTFS_DIR: /crossrootfs/x86
+
+    - container: SourceBuild_Linux_x64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-source-build-20210714125450-5d87b80
+
+    - container: Linux_s390x
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-s390x-20201102145728-d6e0352
+      env:
+        ROOTFS_DIR: /crossrootfs/s390x
+
+    - container: Linux_ppc64le
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-ppc64le-20220531132048-b9de666
+      env:
+        ROOTFS_DIR: /crossrootfs/ppc64le
+
+    - container: Browser_wasm
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-webassembly-20220531132048-00a561c
+
+    - container: FreeBSD_x64
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-freebsd-12-20210917001307-f13d79e
+      env:
+        ROOTFS_DIR: /crossrootfs/x64
+
+    - container: Tizen_armel
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-armel-tizen-20210719212651-8b02f56
+      env:
+        ROOTFS_DIR: /crossrootfs/armel
+
+    - container: debpkg
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-debpkg-20220504035737-cfdd435
+
+    - container: rpmpkg
+      image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-8-rpmpkg-20210714125410-daa5116
+
+stages: ${{ parameters.stages }}
index 0868ffb..65259aa 100644 (file)
@@ -5,7 +5,6 @@ parameters:
   osSubgroup: ''
   container: ''
   testGroup: ''
-  crossrootfsDir: ''
   liveLibrariesBuildConfig: ''
   helixQueues: ''
   stagedBuild: false
@@ -22,8 +21,8 @@ parameters:
   enableMicrobuild: ''
   gatherAssetManifests: false
   shouldContinueOnError: false
-  
-  
+
+
 steps:
   - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -mono os ${{ parameters.osGroup }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }} $(buildConfigUpper)
     displayName: Build Tests
@@ -67,4 +66,4 @@ steps:
 
         helixProjectArguments: '$(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj'
 
-        scenarios: normal 
\ No newline at end of file
+        scenarios: normal
index 7e8fcaf..41b1094 100644 (file)
@@ -6,7 +6,6 @@ parameters:
   container: ''
   testGroup: ''
   crossBuild: false
-  crossrootfsDir: ''
   readyToRun: false
   liveLibrariesBuildConfig: ''
   compositeBuildMode: false
@@ -41,7 +40,6 @@ jobs:
     container: ${{ parameters.container }}
     testGroup: ${{ parameters.testGroup }}
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
     stagedBuild: ${{ parameters.stagedBuild }}
     liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
     helixType: 'build/tests/'
index 1f2f72c..66a634c 100644 (file)
@@ -6,7 +6,6 @@ parameters:
   container: ''
   testGroup: ''
   crossBuild: false
-  crossrootfsDir: ''
   readyToRun: false
   liveLibrariesBuildConfig: ''
   compositeBuildMode: false
index 5f4ca4c..ed41fbd 100644 (file)
@@ -7,7 +7,6 @@ parameters:
   helixType: '(unspecified)'
   container: ''
   crossBuild: false
-  crossrootfsDir: ''
   stagedBuild: false
   strategy: ''
   pool: ''
diff --git a/eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml b/eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
new file mode 100644 (file)
index 0000000..020d1c7
--- /dev/null
@@ -0,0 +1,10 @@
+parameters:
+  - name: jobs
+    type: jobList
+
+extends:
+  template: pipeline-with-resources.yml
+  parameters:
+    stages:
+      - stage: Build
+        jobs: ${{ parameters.jobs }}
index f50d8ed..7ee206d 100644 (file)
@@ -97,11 +97,6 @@ jobs:
         - name: logRootNameArg
           value: '-log:'
 
-      - ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
-        # This is only required for cross builds.
-        - name: ROOTFS_DIR
-          value: ${{ parameters.jobParameters.crossrootfsDir }}
-
       - name: runtimeFlavorName
         ${{ if eq(parameters.jobParameters.runtimeFlavor, 'mono') }}:
           value: Mono
@@ -128,8 +123,10 @@ jobs:
     ${{ if ne(parameters.container, '') }}:
       ${{ if eq(parameters.container.registry, 'mcr') }}:
         container: ${{ format('{0}:{1}', 'mcr.microsoft.com/dotnet-buildtools/prereqs', parameters.container.image) }}
-      ${{ if ne(parameters.container.registry, 'mcr') }}:
+      ${{ if and(ne(parameters.container.image, ''), ne(parameters.container.registry, 'mcr')) }}:
         container: ${{ format('{0}:{1}', parameters.container.registry, parameters.container.image) }}
+      ${{ if eq(parameters.container.image, '') }}:
+        container: ${{ parameters.container }}
 
     ${{ if eq(parameters.jobParameters.pool, '') }}:
       pool:
index 29a0ae0..e09219a 100644 (file)
@@ -29,136 +29,139 @@ schedules:
       - main
     always: false # run only if there were changes since the last successful scheduled run.
 
-jobs:
-
-#
-# Debug builds
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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:
-      testGroup: outerloop
-      liveLibrariesBuildConfig: Release
+    #
+    # 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
 
-#
-# 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
 
-#
-# Formatting
-#
-- template: /eng/pipelines/common/platform-matrix.yml
-  parameters:
-    jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml
-    platforms:
-    - Linux_x64
-    - windows_x64
+    #
+    # 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
index 204d666..80c5d94 100644 (file)
@@ -9,45 +9,48 @@ trigger: none
 #    - main
 #  always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 6f1957e..897ec49 100644 (file)
@@ -8,51 +8,54 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 2ebcc27..59c032d 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index a1209cd..4b41dab 100644 (file)
@@ -8,219 +8,222 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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: 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/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/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/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/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
 
-# 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
+    - 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
 
-# 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
+    # 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
 
-# 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
+    # 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
 
-# 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
+    # 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 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 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 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 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 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 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 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 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 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 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
index bbd2372..4c85904 100644 (file)
@@ -8,46 +8,49 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index edcad8f..18bd672 100644 (file)
@@ -14,41 +14,44 @@ variables:
   - name: toolName
     value: ${{ variables['Build.DefinitionName'] }}
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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 }}
\ No newline at end of file
+    - 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 }}
index e685b36..782569e 100644 (file)
@@ -8,42 +8,45 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index b8e6d69..a786bff 100644 (file)
@@ -8,44 +8,47 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 3aa0204..89d63e2 100644 (file)
@@ -8,57 +8,60 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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-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
+          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
index 6700a71..68725ec 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index dba8e21..4ba897d 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index eff00c7..48dd2d5 100644 (file)
@@ -17,49 +17,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index ed1a267..72f4c50 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index a50b2b6..3e543eb 100644 (file)
@@ -8,45 +8,48 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 49f57cc..605231e 100644 (file)
@@ -10,35 +10,38 @@ trigger:
     - src/coreclr/inc/jiteeversionguid.h
 
 # This pipeline is supposed to be run only on merged changes
-# and should not be triggerable from a PR. 
+# and should not be triggerable from a PR.
 pr: none
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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
\ No newline at end of file
+    - 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
index 42cf82b..dbb6cca 100644 (file)
@@ -8,39 +8,42 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 65798ce..826cc82 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 313b77b..bcb93be 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 4ea3c6c..aa82582 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index a3eb7c0..28a5d55 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 006d4ed..3cbde90 100644 (file)
@@ -8,39 +8,42 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 727e0e6..5e55e45 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 7cf0759..8cb795f 100644 (file)
@@ -9,37 +9,40 @@ trigger: none
 #     - main
 #   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index 1b146e8..f593d7a 100644 (file)
@@ -9,37 +9,40 @@ trigger: none
 #     - main
 #   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index bf1484a..fb2694f 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index b994f69..6e64263 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index cb71c29..d21d6e4 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index e8c17c0..f36f36f 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index 0a33461..c10bc4d 100644 (file)
@@ -8,48 +8,51 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Build CoreCLR checked and libraries Release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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
+    #
+    # 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
index 910c6a3..8ab52e4 100644 (file)
@@ -35,14 +35,17 @@ variables:
     #- main
   #always: true
 
-jobs:
-
-- template: /eng/pipelines/coreclr/perf-wasm-jobs.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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'
+    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-non-wasm-jobs.yml
+    - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml
index 5e808b5..a159474 100644 (file)
@@ -27,231 +27,234 @@ schedules:
     - main
   always: true
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      platforms:
-      - Linux_arm64
+    - ${{ 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
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      platforms:
-      - Linux_arm64
-      jobParameters:
-        testGroup: perf
+      # build coreclr and libraries
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: release
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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: 500 
+      # 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
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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: 500 
 
-  # build mono on wasm
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      buildConfig: release
-      runtimeFlavor: mono
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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
+      # build mono on wasm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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')) }}:
+    - ${{ 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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      platforms:
-      - Linux_arm64
-      - windows_arm64
-      jobParameters:
-        testGroup: perf
+      # build coreclr and libraries
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+          buildConfig: release
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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
+      # build mono on wasm
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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 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
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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
-      container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
-      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 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
+          container: ubuntu-18.04-cross-arm64-20211022152824-b2c2436
+          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 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' 
+    # 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'
+    # 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'
+    # # 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 80f1579..10fcb2e 100644 (file)
@@ -8,49 +8,52 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 940c29d..4fda5e7 100644 (file)
@@ -8,43 +8,46 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 81bee51..0176f29 100644 (file)
@@ -8,51 +8,54 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index fb7cd6a..7ee53ac 100644 (file)
@@ -8,66 +8,69 @@ schedules:
     - main
   always: true
 
-jobs:
-
-#
-# Release CoreCLR and Library builds
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-#
-# 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 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 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 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 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 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
 
index 1588a59..a7f2abb 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index b1b4bea..acd8b6b 100644 (file)
@@ -8,34 +8,37 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
   parameters:
-    jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-    buildConfig: checked
-    platforms:
-    - windows_x64
-    - windows_x86
-    jobParameters:
-      uploadAs: 'pipelineArtifacts'
+    jobs:
 
-- 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: checked
+        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/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
index f95a500..2ae6267 100644 (file)
@@ -23,147 +23,150 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-# 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/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
 
-- 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
+    # 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/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/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_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
 
-- 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: 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: 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: crossgen2
+          collectionName: libraries
 
-#
-# 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
\ No newline at end of file
+    - 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
index 1d0df2b..6a9bcc6 100644 (file)
@@ -16,34 +16,37 @@ pr:
     exclude:
     - src/coreclr/inc/jiteeversionguid.h
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
   parameters:
-    jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-    buildConfig: checked
-    platforms:
-    - windows_x64
-    - windows_x86
-    jobParameters:
-      uploadAs: 'pipelineArtifacts'
+    jobs:
 
-- 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: checked
+        platforms:
+        - windows_x64
+        - windows_x86
+        jobParameters:
+          uploadAs: 'pipelineArtifacts'
 
-- 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
\ No newline at end of file
+    - 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-diffs-job.yml
+        buildConfig: checked
+        platforms:
+        - windows_x64
+        - windows_x86
+        helixQueueGroup: ci
+        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
index 1fc2bc7..cddf7da 100644 (file)
@@ -15,24 +15,27 @@ pr:
     exclude:
     - src/coreclr/inc/jiteeversionguid.h
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
   parameters:
-    jobTemplate: /eng/pipelines/coreclr/templates/build-jit-job.yml
-    buildConfig: checked
-    platforms:
-    - windows_x64
-    - windows_x86
-    jobParameters:
-      uploadAs: 'pipelineArtifacts'
+    jobs:
 
-- 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
\ No newline at end of file
+    - 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/superpmi-replay-job.yml
+        buildConfig: checked
+        platforms:
+        - windows_x64
+        - windows_x86
+        helixQueueGroup: ci
+        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
index 9f3beb3..e91e0da 100644 (file)
@@ -3,7 +3,6 @@ parameters:
   buildConfig: ''
   container: ''
   crossBuild: false
-  crossrootfsDir: ''
   osGroup: ''
   osSubgroup: ''
   pool: ''
@@ -38,7 +37,6 @@ jobs:
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
 
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
 
     gatherAssetManifests: true
 
index 98ae1b6..12acad0 100644 (file)
@@ -7,7 +7,6 @@ parameters:
   condition: true
   container: ''
   crossBuild: false
-  crossrootfsDir: ''
   dependOnEvaluatePaths: false
   disableClrTest: false
   isOfficialBuild: false
@@ -70,7 +69,6 @@ jobs:
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
 
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
 
     gatherAssetManifests: true
     variables:
index c4eddc7..159f368 100644 (file)
@@ -7,7 +7,6 @@ parameters:
   helixQueues: ''
   runtimeVariant: ''
   crossBuild: false
-  crossrootfsDir: ''
   dependOnEvaluatePaths: false
   stagedBuild: false
   variables: {}
@@ -44,7 +43,6 @@ jobs:
     displayName: ${{ format('Test crossgen2-comparison build {0}{1} {2} {3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
 
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
 
     variables:
     - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
index b3d04f9..ddd66fb 100644 (file)
@@ -7,7 +7,6 @@ parameters:
   helixQueues: ''
   runtimeVariant: ''
   crossBuild: false
-  crossrootfsDir: ''
   dependOnEvaluatePaths: false
   stagedBuild: false
   variables: {}
@@ -48,7 +47,6 @@ jobs:
     displayName: ${{ format('Test crossgen2-comparison {0}{1} {2} {3} to {4} {5}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.targetarch, parameters.targetos) }}
 
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
 
     variables:
     - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
@@ -126,7 +124,7 @@ jobs:
       inputs:
         artifact: '$(crossgencompare_build_artifact)'
         path: '$(workItemDirectory)$(dir)prebuiltWork'
-    
+
     # Send payload to Helix where the native output is generated and compared to the baseline
     - template: /eng/common/templates/steps/send-to-helix.yml
       parameters:
index 6a64ef4..30efa3a 100644 (file)
@@ -5,7 +5,6 @@ parameters:
   osSubgroup: ''
   container: ''
   crossBuild: false
-  crossrootfsDir: ''
   dependOnEvaluatePaths: false
   timeoutInMinutes: ''
   stagedBuild: false
@@ -23,7 +22,6 @@ jobs:
     osSubgroup: ${{ parameters.osSubgroup }}
     container: ${{ parameters.container }}
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
     dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
     stagedBuild: ${{ parameters.stagedBuild }}
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
index 6b92f7b..2bfe964 100644 (file)
@@ -8,7 +8,6 @@ parameters:
   container: ''
   testGroup: ''
   crossBuild: false
-  crossrootfsDir: ''
   liveLibrariesBuildConfig: ''
   stagedBuild: false
   strategy: ''
@@ -37,7 +36,6 @@ jobs:
     helixType: ${{ parameters.helixType }}
     container: ${{ parameters.container }}
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
     stagedBuild: ${{ parameters.stagedBuild }}
     strategy: ${{ parameters.strategy }}
     pool: ${{ parameters.pool }}
index 0a57b1e..5026535 100644 (file)
@@ -8,41 +8,44 @@ schedules:
     - main
   always: true
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    jobs:
 
-- 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/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/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/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
index 01f38d0..614496d 100644 (file)
@@ -28,146 +28,149 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 d89099c..e894740 100644 (file)
@@ -5,7 +5,6 @@ parameters:
   osSubgroup: ''
   platform: ''
   crossBuild: false
-  crossrootfsDir: ''
   timeoutInMinutes: 120
   condition: true
   shouldContinueOnError: false
@@ -74,7 +73,6 @@ jobs:
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
 
     crossBuild: ${{ parameters.crossBuild }}
-    crossrootfsDir: ${{ parameters.crossrootfsDir }}
 
     gatherAssetManifests: true
     variables:
index 95d96c0..5c39b0b 100644 (file)
@@ -4,7 +4,6 @@ parameters:
   archType: ''
   osSubgroup: ''
   crossBuild: false
-  crossrootfsDir: ''
   framework: 'net7.0'
   isOfficialAllConfigurations: false
   isSourceBuild: false
index 5e84ed9..44db3c1 100644 (file)
@@ -5,7 +5,6 @@ parameters:
   archType: ''
   targetRid: ''
   crossBuild: false
-  crossrootfsDir: ''
   framework: 'net7.0'
   isOfficialBuild: false
   isOfficialAllConfigurations: false
@@ -42,7 +41,6 @@ jobs:
       osSubgroup:  ${{ parameters.osSubgroup }}
       archType:  ${{ parameters.archType }}
       crossBuild: ${{ parameters.crossBuild }}
-      crossrootfsDir: ${{ parameters.crossrootfsDir }}
       framework:  ${{ parameters.framework }}
       isOfficialBuild: ${{ parameters.isOfficialBuild }}
       isOfficialAllConfigurations: ${{ parameters.isOfficialAllConfigurations }}
index bf800fc..80e6ce0 100644 (file)
@@ -29,54 +29,57 @@ variables:
   - name: containerLibrariesRoot
     value: /repo/src/libraries
 
-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)
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-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)
 
-  - 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 a97e4cc..b087915 100644 (file)
@@ -12,60 +12,63 @@ trigger: none
 variables:
   - template: variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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
-        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:
+      - 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
-            creator: dotnet-bot
-            testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+            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
+            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 72c2de4..f3afca3 100644 (file)
@@ -11,96 +11,99 @@ schedules:
 variables:
   - template: variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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) }}:
-    - 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
+      #
+      # 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['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
+      - ${{ 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 4e9e7e0..467bc7d 100644 (file)
@@ -24,136 +24,139 @@ variables:
     value: dotnet-sdk-libraries-current
 
 
-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
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-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
index 99edbbf..69be347 100644 (file)
@@ -24,55 +24,58 @@ variables:
     value: dotnet-sdk-libraries-current
 
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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: |
-      $(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: |
+          $(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: |
+          cd '$(sslStressProject)'
+          docker-compose up --abort-on-container-exit --no-color
+        displayName: Run SslStress
index ac1e239..8043230 100644 (file)
@@ -12,7 +12,6 @@ parameters:
   runtimeVariant: ''
   isOfficialBuild: false
   crossBuild: false
-  crossrootfsDir: ''
   dependsOn: []
   monoCrossAOTTargetOS: []
   dependOnEvaluatePaths: false
@@ -32,7 +31,6 @@ jobs:
     runtimeVariant: ${{ parameters.runtimeVariant }}
     crossBuild: ${{ parameters.crossBuild }}
     monoCrossAOTTargetOS: ${{ parameters.monoCrossAOTTargetOS }}
-    crossrootfsDir: ${{ parameters.crossroofsDir }}
     condition: ${{ parameters.condition }}
     dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
 
index 5322771..bee2e5b 100644 (file)
@@ -18,28 +18,31 @@ schedules:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
-
-#
-# Android emulators
-# Build the whole product using Mono and run libraries tests
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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)
+    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)
index e9d2087..8ec742a 100644 (file)
@@ -31,63 +31,66 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
-
-#
-# Build CoreCLR checked
-# Only when CoreCLR is changed
-#
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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.
-#
+    jobs:
 
-- template: /eng/pipelines/common/platform-matrix.yml
-  parameters:
-    jobTemplate: /eng/pipelines/libraries/build-job.yml
-    buildConfig: release
-    platforms:
-    - windows_x64
-    jobParameters:
-      testScope: 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
 
-#
-# 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
+    #
+    # 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
 
-#
-# CoreCLR Test executions using live libraries
-# Only when CoreCLR is changed
-#
+    #
+    # 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
 
-- 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
+
+    #
+    # 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
index 7b2908c..eac7741 100644 (file)
@@ -30,111 +30,114 @@ schedules:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-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
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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)
-        condition: >-
-          or(
-          eq(variables['librariesContainsChange'], true),
-          eq(variables['monoContainsChange'], true),
-          eq(variables['isRollingBuild'], true))
+    jobs:
+    #
+    # Evaluate paths
+    #
+    - ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
+      - template: /eng/pipelines/common/evaluate-default-paths.yml
 
-#
-# 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))
+    #
+    # 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)
+            condition: >-
+              or(
+              eq(variables['librariesContainsChange'], true),
+              eq(variables['monoContainsChange'], 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)
+    #
+    # 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 c030edb..fc25c48 100644 (file)
@@ -37,66 +37,69 @@ schedules:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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
-    parameters:
-      isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
-      isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }}
-      isRollingBuild: ${{ variables.isRollingBuild }}
+    # 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 }}
-    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 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 Android jobs
+    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-android.yml
+      parameters:
+        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+        isAndroidOnlyBuild: ${{ variables.isAndroidOnlyBuild }}
+        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 emulator jobs
+    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml
+      parameters:
+        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+        isAndroidEmulatorOnlyBuild: ${{ variables.isAndroidEmulatorOnlyBuild }}
+        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 Mac Catalyst jobs
+    - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
+      parameters:
+        isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+        isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }}
+        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 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 }}
+    # 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 0c785b5..8432999 100644 (file)
@@ -18,7 +18,7 @@ trigger:
     - LICENSE.TXT
     - PATENTS.TXT
     - THIRD-PARTY-NOTICES.TXT
-  
+
 schedules:
   - cron: "0 7,19 * * *" # run at 7:00 and 19:00 (UTC) which is 23:00 and 11:00 (PST).
     displayName: Runtime-linker-tests default schedule
@@ -48,56 +48,59 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 Release config vertical for Windows, Linux, Linux musl 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, Linux musl 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 9f58d2b..0ddc724 100644 (file)
@@ -51,165 +51,168 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 5f5dfc6..6618d01 100644 (file)
@@ -22,14 +22,6 @@ trigger:
 # there is no public pipeline associated with it.
 pr: none
 
-resources:
-  containers:
-  # Define auxilary containers used by the installer jobs
-  - container: debpkg
-    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-debpkg-20220504035737-cfdd435
-  - container: rpmpkg
-    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-8-rpmpkg-20210714125410-daa5116
-
 variables:
 - template: /eng/pipelines/common/variables.yml
 # TODO: (Consolidation) Switch away from old signing/validation variables from former Core-Setup. https://github.com/dotnet/runtime/issues/1027
@@ -38,444 +30,447 @@ variables:
 - name: PostBuildSign
   value: true
 
-stages:
-- stage: Build
-  jobs:
+extends:
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
+  parameters:
+    stages:
+    - stage: Build
+      jobs:
 
-  #
-  # Localization build
-  #
-  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
-    - template: /eng/common/templates/job/onelocbuild.yml
-      parameters:
-        MirrorRepo: runtime
-        LclSource: lclFilesfromPackage
-        LclPackageId: 'LCL-JUNO-PROD-RUNTIME'
+      #
+      # Localization build
+      #
+      - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
+        - template: /eng/common/templates/job/onelocbuild.yml
+          parameters:
+            MirrorRepo: runtime
+            LclSource: lclFilesfromPackage
+            LclPackageId: 'LCL-JUNO-PROD-RUNTIME'
 
-  #
-  # Source Index Build
-  #
-  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
-    - template: /eng/common/templates/job/source-index-stage1.yml
-      parameters:
-        sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os Linux -ci
+      #
+      # Source Index Build
+      #
+      - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
+        - template: /eng/common/templates/job/source-index-stage1.yml
+          parameters:
+            sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os Linux -ci
 
-  #
-  # Build CoreCLR
-  #
-  - 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_x86
-      - windows_x64
-      - windows_arm
-      - windows_arm64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        signBinaries: ${{ variables.isOfficialBuild }}
-        timeoutInMinutes: 120
+      #
+      # Build CoreCLR
+      #
+      - 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_x86
+          - windows_x64
+          - windows_arm
+          - windows_arm64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            signBinaries: ${{ variables.isOfficialBuild }}
+            timeoutInMinutes: 120
 
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml
-      buildConfig: release
-      platforms:
-      - windows_x64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        timeoutInMinutes: 120
-        crossDacPlatforms:
-        - Linux_x64
-        - Linux_arm
-        - Linux_arm64
-        - Linux_musl_x64
-        - Linux_musl_arm
-        - Linux_musl_arm64
-        - windows_x64
-        - windows_arm
-        - windows_arm64
-  #
-  # Build Mono runtime packs
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      buildConfig: release
-      runtimeFlavor: mono
-      platforms:
-      - Android_x64
-      - Android_x86
-      - Android_arm
-      - Android_arm64
-      - MacCatalyst_x64
-      - MacCatalyst_arm64
-      - tvOSSimulator_x64
-      - tvOSSimulator_arm64
-      - tvOS_arm64
-      - iOSSimulator_x64
-      - iOSSimulator_x86
-      - iOSSimulator_arm64
-      - iOS_arm
-      - iOS_arm64
-      - OSX_x64
-      - OSX_arm64
-      - Linux_x64
-      - Linux_arm
-      - Linux_arm64
-      - Linux_musl_x64
-      - Browser_wasm
-      - Linux_bionic_arm64
-      - Linux_bionic_x64
-      # - Linux_musl_arm
-      # - Linux_musl_arm64
-      - windows_x64
-      - windows_x86
-      # - windows_arm
-      # - windows_arm64
-      jobParameters:
-        buildArgs: -s mono+libs+host+packs+mono.mscordbi -c $(_BuildConfig)
-        nameSuffix: AllSubsets_Mono
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            timeoutInMinutes: 120
+            crossDacPlatforms:
+            - Linux_x64
+            - Linux_arm
+            - Linux_arm64
+            - Linux_musl_x64
+            - Linux_musl_arm
+            - Linux_musl_arm64
+            - windows_x64
+            - windows_arm
+            - windows_arm64
+      #
+      # Build Mono runtime packs
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: release
+          runtimeFlavor: mono
+          platforms:
+          - Android_x64
+          - Android_x86
+          - Android_arm
+          - Android_arm64
+          - MacCatalyst_x64
+          - MacCatalyst_arm64
+          - tvOSSimulator_x64
+          - tvOSSimulator_arm64
+          - tvOS_arm64
+          - iOSSimulator_x64
+          - iOSSimulator_x86
+          - iOSSimulator_arm64
+          - iOS_arm
+          - iOS_arm64
+          - OSX_x64
+          - OSX_arm64
+          - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_musl_x64
+          - Browser_wasm
+          - Linux_bionic_arm64
+          - Linux_bionic_x64
+          # - Linux_musl_arm
+          # - Linux_musl_arm64
+          - windows_x64
+          - windows_x86
+          # - windows_arm
+          # - windows_arm64
+          jobParameters:
+            buildArgs: -s mono+libs+host+packs+mono.mscordbi -c $(_BuildConfig)
+            nameSuffix: AllSubsets_Mono
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  - 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+mono.mscordbi -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace
-        nameSuffix: AllSubsets_Mono_perftrace
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        runtimeVariant: perftrace
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      - 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+mono.mscordbi -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace
+            nameSuffix: AllSubsets_Mono_perftrace
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            runtimeVariant: perftrace
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  - 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+mono.mscordbi -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread
-        nameSuffix: AllSubsets_Mono_multithread
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        runtimeVariant: multithread
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      - 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+mono.mscordbi -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread
+            nameSuffix: AllSubsets_Mono_multithread
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            runtimeVariant: multithread
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  # Build Mono AOT offset headers once, for consumption elsewhere
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
-      buildConfig: release
-      platforms:
-      - Android_x64
-      - Browser_wasm
-      - tvOS_arm64
-      - iOS_arm64
-      - MacCatalyst_x64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
+      # Build Mono AOT offset headers once, for consumption elsewhere
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
+          buildConfig: release
+          platforms:
+          - Android_x64
+          - Browser_wasm
+          - tvOS_arm64
+          - iOS_arm64
+          - MacCatalyst_x64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
 
-  #
-  # Build Mono release AOT cross-compilers
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      runtimeFlavor: mono
-      buildConfig: release
-      platforms:
-      - Linux_x64
-      jobParameters:
-        buildArgs: -s mono+packs -c $(_BuildConfig)
-                   /p:MonoCrossAOTTargetOS=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
-        nameSuffix: CrossAOT_Mono
-        runtimeVariant: crossaot
-        dependsOn:
-        - mono_android_offsets
-        - mono_browser_offsets
-        monoCrossAOTTargetOS:
-        - Android
-        - Browser
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      #
+      # Build Mono release AOT cross-compilers
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - Linux_x64
+          jobParameters:
+            buildArgs: -s mono+packs -c $(_BuildConfig)
+                      /p:MonoCrossAOTTargetOS=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
+            nameSuffix: CrossAOT_Mono
+            runtimeVariant: crossaot
+            dependsOn:
+            - mono_android_offsets
+            - mono_browser_offsets
+            monoCrossAOTTargetOS:
+            - Android
+            - Browser
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      runtimeFlavor: mono
-      buildConfig: release
-      platforms:
-      - Windows_x64
-      jobParameters:
-        buildArgs: -s mono+packs -c $(_BuildConfig)
-                   /p:MonoCrossAOTTargetOS=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
-        nameSuffix: CrossAOT_Mono
-        runtimeVariant: crossaot
-        dependsOn:
-        - mono_android_offsets
-        - mono_browser_offsets
-        monoCrossAOTTargetOS:
-        - Android
-        - Browser
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - Windows_x64
+          jobParameters:
+            buildArgs: -s mono+packs -c $(_BuildConfig)
+                      /p:MonoCrossAOTTargetOS=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
+            nameSuffix: CrossAOT_Mono
+            runtimeVariant: crossaot
+            dependsOn:
+            - mono_android_offsets
+            - mono_browser_offsets
+            monoCrossAOTTargetOS:
+            - Android
+            - Browser
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      runtimeFlavor: mono
-      buildConfig: release
-      platforms:
-      - OSX_x64
-      jobParameters:
-        buildArgs: -s mono+packs -c $(_BuildConfig)
-                   /p:MonoCrossAOTTargetOS=Android+Browser+tvOS+iOS+MacCatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
-        nameSuffix: CrossAOT_Mono
-        runtimeVariant: crossaot
-        dependsOn:
-        - mono_android_offsets
-        - mono_browser_offsets
-        - mono_tvos_offsets
-        - mono_ios_offsets
-        - mono_maccatalyst_offsets
-        monoCrossAOTTargetOS:
-        - Android
-        - Browser
-        - tvOS
-        - iOS
-        - MacCatalyst
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: MonoRuntimePacks
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          runtimeFlavor: mono
+          buildConfig: release
+          platforms:
+          - OSX_x64
+          jobParameters:
+            buildArgs: -s mono+packs -c $(_BuildConfig)
+                      /p:MonoCrossAOTTargetOS=Android+Browser+tvOS+iOS+MacCatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
+            nameSuffix: CrossAOT_Mono
+            runtimeVariant: crossaot
+            dependsOn:
+            - mono_android_offsets
+            - mono_browser_offsets
+            - mono_tvos_offsets
+            - mono_ios_offsets
+            - mono_maccatalyst_offsets
+            monoCrossAOTTargetOS:
+            - Android
+            - Browser
+            - tvOS
+            - iOS
+            - MacCatalyst
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: MonoRuntimePacks
 
-  #
-  # Build Mono LLVM runtime packs
-  #
-  - template: /eng/pipelines/common/platform-matrix-multijob.yml
-    parameters:
-      platforms:
-      - OSX_x64
-      - Linux_x64
-      # - Linux_arm
-      - Linux_arm64
-      # - Linux_musl_x64
-      # - Linux_musl_arm64
-      # - windows_x64
-      # - windows_x86
-      # - windows_arm
-      # - windows_arm64
-      jobTemplates:
-      # LLVMJIT
-      - jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        jobParameters:
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                     /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
-          nameSuffix: AllSubsets_Mono_LLVMJIT
-          runtimeVariant: LLVMJIT
-          isOfficialBuild: ${{ variables.isOfficialBuild }}
-          extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-          extraStepsParameters:
-            name: MonoRuntimePacks
-      #LLVMAOT
-      - jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: release
-        runtimeFlavor: mono
-        jobParameters:
-          buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
-                      /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
-          nameSuffix: AllSubsets_Mono_LLVMAOT
-          runtimeVariant: LLVMAOT
-          isOfficialBuild: ${{ variables.isOfficialBuild }}
-          extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-          extraStepsParameters:
-            name: MonoRuntimePacks
+      #
+      # Build Mono LLVM runtime packs
+      #
+      - template: /eng/pipelines/common/platform-matrix-multijob.yml
+        parameters:
+          platforms:
+          - OSX_x64
+          - Linux_x64
+          # - Linux_arm
+          - Linux_arm64
+          # - Linux_musl_x64
+          # - Linux_musl_arm64
+          # - windows_x64
+          # - windows_x86
+          # - windows_arm
+          # - windows_arm64
+          jobTemplates:
+          # LLVMJIT
+          - jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            jobParameters:
+              buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                        /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
+              nameSuffix: AllSubsets_Mono_LLVMJIT
+              runtimeVariant: LLVMJIT
+              isOfficialBuild: ${{ variables.isOfficialBuild }}
+              extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+              extraStepsParameters:
+                name: MonoRuntimePacks
+          #LLVMAOT
+          - jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: release
+            runtimeFlavor: mono
+            jobParameters:
+              buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
+                          /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
+              nameSuffix: AllSubsets_Mono_LLVMAOT
+              runtimeVariant: LLVMAOT
+              isOfficialBuild: ${{ variables.isOfficialBuild }}
+              extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+              extraStepsParameters:
+                name: MonoRuntimePacks
 
-  #
-  # Build libraries using live CoreLib from CoreCLR
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/libraries/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_x86
-      - windows_x64
-      - windows_arm
-      - windows_arm64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        liveRuntimeBuildConfig: release
-        # Official builds don't run tests, locally or on Helix
-        runTests: false
-        useHelix: false
+      #
+      # Build libraries using live CoreLib from CoreCLR
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/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_x86
+          - windows_x64
+          - windows_arm
+          - windows_arm64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            liveRuntimeBuildConfig: release
+            # Official builds don't run tests, locally or on Helix
+            runTests: false
+            useHelix: false
 
-  #
-  # Build libraries AllConfigurations for packages
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/libraries/build-job.yml
-      buildConfig: Release
-      platforms:
-      - windows_x64
-      jobParameters:
-        framework: allConfigurations
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        isOfficialAllConfigurations: true
-        liveRuntimeBuildConfig: release
-        # Official builds don't run tests, locally or on Helix
-        runTests: false
-        useHelix: false
+      #
+      # Build libraries AllConfigurations for packages
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/libraries/build-job.yml
+          buildConfig: Release
+          platforms:
+          - windows_x64
+          jobParameters:
+            framework: allConfigurations
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            isOfficialAllConfigurations: true
+            liveRuntimeBuildConfig: release
+            # Official builds don't run tests, locally or on Helix
+            runTests: false
+            useHelix: false
 
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      buildConfig: Release
-      helixQueueGroup: ci
-      platforms:
-      - SourceBuild_Linux_x64
-      jobParameters:
-        nameSuffix: PortableSourceBuild
-        extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-        extraStepsParameters:
-          name: SourceBuildPackages
-        timeoutInMinutes: 95
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          helixQueueGroup: ci
+          platforms:
+          - SourceBuild_Linux_x64
+          jobParameters:
+            nameSuffix: PortableSourceBuild
+            extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+            extraStepsParameters:
+              name: SourceBuildPackages
+            timeoutInMinutes: 95
 
-  #
-  # Installer Build
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
-      buildConfig: Release
-      jobParameters:
-        liveRuntimeBuildConfig: release
-        liveLibrariesBuildConfig: Release
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-      platforms:
-      - OSX_arm64
-      - OSX_x64
-      - Linux_x64
-      - Linux_arm
-      - Linux_arm64
-      - Linux_musl_x64
-      - Linux_musl_arm
-      - Linux_musl_arm64
-      - windows_x86
-      - windows_x64
-      - windows_arm
-      - windows_arm64
+      #
+      # Installer Build
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
+          buildConfig: Release
+          jobParameters:
+            liveRuntimeBuildConfig: release
+            liveLibrariesBuildConfig: Release
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+          platforms:
+          - OSX_arm64
+          - OSX_x64
+          - Linux_x64
+          - Linux_arm
+          - Linux_arm64
+          - Linux_musl_x64
+          - Linux_musl_arm
+          - Linux_musl_arm64
+          - windows_x86
+          - windows_x64
+          - windows_arm
+          - windows_arm64
 
-  #
-  # Build PGO CoreCLR release
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
-      buildConfig: release
-      platforms:
-      - windows_x64
-      - windows_x86
-      - Linux_x64
-      - windows_arm64
-      - Linux_arm64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        signBinaries: false
-        testGroup: innerloop
-        pgoType: 'PGO'
+      #
+      # Build PGO CoreCLR release
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          - windows_x86
+          - Linux_x64
+          - windows_arm64
+          - Linux_arm64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            signBinaries: false
+            testGroup: innerloop
+            pgoType: 'PGO'
 
-  #
-  # PGO Build
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
-      buildConfig: Release
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        liveRuntimeBuildConfig: release
-        liveLibrariesBuildConfig: Release
-        pgoType: 'PGO'
-      platforms:
-      - windows_x64
-      - windows_x86
-      - Linux_x64
-      - windows_arm64
-      - Linux_arm64
+      #
+      # PGO Build
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
+          buildConfig: Release
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            liveRuntimeBuildConfig: release
+            liveLibrariesBuildConfig: Release
+            pgoType: 'PGO'
+          platforms:
+          - windows_x64
+          - windows_x86
+          - Linux_x64
+          - windows_arm64
+          - Linux_arm64
 
-  #
-  # Build Workloads
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml
-      buildConfig: release
-      platforms:
-      - windows_x64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        timeoutInMinutes: 120
-        dependsOn:
-        - Build_Android_arm_release_AllSubsets_Mono
-        - Build_Android_arm64_release_AllSubsets_Mono
-        - Build_Android_x86_release_AllSubsets_Mono
-        - Build_Android_x64_release_AllSubsets_Mono
-        - Build_Browser_wasm_Linux_release_AllSubsets_Mono
-        - Build_iOS_arm_release_AllSubsets_Mono
-        - Build_iOS_arm64_release_AllSubsets_Mono
-        - Build_iOSSimulator_x64_release_AllSubsets_Mono
-        - Build_iOSSimulator_x86_release_AllSubsets_Mono
-        - Build_iOSSimulator_arm64_release_AllSubsets_Mono
-        - Build_MacCatalyst_arm64_release_AllSubsets_Mono
-        - Build_MacCatalyst_x64_release_AllSubsets_Mono
-        - Build_tvOS_arm64_release_AllSubsets_Mono
-        - Build_tvOSSimulator_arm64_release_AllSubsets_Mono
-        - Build_tvOSSimulator_x64_release_AllSubsets_Mono
-        - Build_Windows_x64_release_CrossAOT_Mono
-        - installer__coreclr__windows_x64_Release_
-        - installer__coreclr__windows_x86_Release_
-        - installer__coreclr__windows_arm_Release_
-        - installer__coreclr__windows_arm64_Release_
+      #
+      # Build Workloads
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml
+          buildConfig: release
+          platforms:
+          - windows_x64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            timeoutInMinutes: 120
+            dependsOn:
+            - Build_Android_arm_release_AllSubsets_Mono
+            - Build_Android_arm64_release_AllSubsets_Mono
+            - Build_Android_x86_release_AllSubsets_Mono
+            - Build_Android_x64_release_AllSubsets_Mono
+            - Build_Browser_wasm_Linux_release_AllSubsets_Mono
+            - Build_iOS_arm_release_AllSubsets_Mono
+            - Build_iOS_arm64_release_AllSubsets_Mono
+            - Build_iOSSimulator_x64_release_AllSubsets_Mono
+            - Build_iOSSimulator_x86_release_AllSubsets_Mono
+            - Build_iOSSimulator_arm64_release_AllSubsets_Mono
+            - Build_MacCatalyst_arm64_release_AllSubsets_Mono
+            - Build_MacCatalyst_x64_release_AllSubsets_Mono
+            - Build_tvOS_arm64_release_AllSubsets_Mono
+            - Build_tvOSSimulator_arm64_release_AllSubsets_Mono
+            - Build_tvOSSimulator_x64_release_AllSubsets_Mono
+            - Build_Windows_x64_release_CrossAOT_Mono
+            - installer__coreclr__windows_x64_Release_
+            - installer__coreclr__windows_x86_Release_
+            - installer__coreclr__windows_arm_Release_
+            - installer__coreclr__windows_arm64_Release_
 
-- ${{ if eq(variables.isOfficialBuild, true) }}:
-  - template: /eng/pipelines/official/stages/publish.yml
-    parameters:
-      isOfficialBuild: ${{ variables.isOfficialBuild }}
+    - ${{ if eq(variables.isOfficialBuild, true) }}:
+      - template: /eng/pipelines/official/stages/publish.yml
+        parameters:
+          isOfficialBuild: ${{ variables.isOfficialBuild }}
index 09963dc..753a362 100644 (file)
@@ -22,30 +22,33 @@ pr: none
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
-
-- template: /eng/pipelines/common/platform-matrix.yml
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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
+    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
-      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
+          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
index 9aa56c9..820b10f 100644 (file)
@@ -50,49 +50,52 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 f366f40..3a0ba67 100644 (file)
@@ -3,17 +3,20 @@ trigger: none
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 752e99e..9e16cb2 100644 (file)
@@ -3,17 +3,20 @@ trigger: none
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 0ee6c1c..fe26b35 100644 (file)
@@ -7,23 +7,26 @@ trigger: none
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 1117e65..cd7a204 100644 (file)
@@ -7,15 +7,18 @@ trigger: none
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-jobs:
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.yml
+  parameters:
+    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 ec27c0b..261f305 100644 (file)
@@ -51,1286 +51,1280 @@ pr:
 variables:
   - template: /eng/pipelines/common/variables.yml
 
-resources:
-  containers:
-  # Define auxilary containers used by the installer jobs
-  - container: debpkg
-    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-debpkg-20220504035737-cfdd435
-  - container: rpmpkg
-    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-8-rpmpkg-20210714125410-daa5116
-
-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
+extends:
+  template:  /eng/pipelines/common/templates/single-stage-pipeline-with-resources.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(
-          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
-    - 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
-      - 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))
-
-#
-# 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)
-        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) }}:
-  - 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
-    - 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))
-
-#
-# Mono CoreCLR runtime Test executions using live libraries in jit mode
-# 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:
-    - OSX_x64
-    - 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))
-
-#
-# 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/templates/runtimes/run-test-job.yml
-    buildConfig: release
-    runtimeFlavor: mono
-    platforms:
-    - OSX_x64
-    helixQueueGroup: pr
-    helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-    jobParameters:
-      testGroup: innerloop
-      liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-      liveRuntimeBuildConfig: release
-      runtimeVariant: monointerpreter
-      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))
-
-#
-# 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)
+    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(
+              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
+        - 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
+          - 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))
+
+    #
+    # 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)
+            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) }}:
+      - 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
+        - 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))
+
+    #
+    # Mono CoreCLR runtime Test executions using live libraries in jit mode
+    # 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:
+        - OSX_x64
+        - 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))
+
+    #
+    # 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/templates/runtimes/run-test-job.yml
+        buildConfig: release
+        runtimeFlavor: mono
+        platforms:
+        - OSX_x64
+        helixQueueGroup: pr
+        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+        jobParameters:
+          testGroup: innerloop
+          liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+          liveRuntimeBuildConfig: release
+          runtimeVariant: monointerpreter
+          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))
+
+    #
+    # 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)
index 4f1780a..4d64ea7 100644 (file)
@@ -53,175 +53,178 @@ variables:
     - name: TeamName
       value: dotnet-core
 
-stages:
-- stage: Build
-  jobs:
+extends:
+  template:  /eng/pipelines/common/templates/pipeline-with-resources.yml
+  parameters:
+    stages:
+    - stage: Build
+      jobs:
 
-  #
-  # Build with Debug config and Checked runtimeConfiguration
-  #
-  - ${{ if ne(variables.isOfficialBuild, true) }}:
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/global-build-job.yml
-        buildConfig: Checked
-        platforms:
-        - Linux_x64
-        - windows_x64
-        jobParameters:
-          timeoutInMinutes: 100
-          testGroup: innerloop
-          buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked
-          extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
-          extraStepsParameters:
-            uploadRuntimeTests: true
+      #
+      # Build with Debug config and Checked runtimeConfiguration
+      #
+      - ${{ if ne(variables.isOfficialBuild, true) }}:
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/global-build-job.yml
+            buildConfig: Checked
+            platforms:
+            - Linux_x64
+            - windows_x64
+            jobParameters:
+              timeoutInMinutes: 100
+              testGroup: innerloop
+              buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked
+              extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+              extraStepsParameters:
+                uploadRuntimeTests: true
 
-  #
-  # Build with Release config and Release runtimeConfiguration
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      buildConfig: Release
-      platforms:
-      - Linux_x64
-      - windows_x64
-      jobParameters:
-        timeoutInMinutes: 100
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        testGroup: innerloop
-        extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
-        extraStepsParameters:
-          uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }}
-          uploadIntermediateArtifacts: false
-        ${{ if eq(variables.isOfficialBuild, false) }}:
-          buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true
-        ${{ if eq(variables.isOfficialBuild, true) }}:
-          buildArgs: -s clr+libs -c $(_BuildConfig)
+      #
+      # Build with Release config and Release runtimeConfiguration
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          platforms:
+          - Linux_x64
+          - windows_x64
+          jobParameters:
+            timeoutInMinutes: 100
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            testGroup: innerloop
+            extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+            extraStepsParameters:
+              uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }}
+              uploadIntermediateArtifacts: false
+            ${{ if eq(variables.isOfficialBuild, false) }}:
+              buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true
+            ${{ if eq(variables.isOfficialBuild, true) }}:
+              buildArgs: -s clr+libs -c $(_BuildConfig)
 
-  #
-  # Build with Release allConfigurations to produce packages
-  #
-  - template: /eng/pipelines/common/platform-matrix.yml
-    parameters:
-      jobTemplate: /eng/pipelines/common/global-build-job.yml
-      buildConfig: Release
-      platforms:
-      - windows_x64
-      jobParameters:
-        isOfficialBuild: ${{ variables.isOfficialBuild }}
-        testGroup: innerloop
-        nameSuffix: AllConfigurations
-        buildArgs: -s libs -c $(_BuildConfig) -allConfigurations
-        ${{ if eq(variables.isOfficialBuild, true) }}:
-          extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
-          extraStepsParameters:
-            uploadIntermediateArtifacts: true
-            isOfficialBuild: true
-            librariesBinArtifactName: libraries_bin_official_allconfigurations
+      #
+      # Build with Release allConfigurations to produce packages
+      #
+      - template: /eng/pipelines/common/platform-matrix.yml
+        parameters:
+          jobTemplate: /eng/pipelines/common/global-build-job.yml
+          buildConfig: Release
+          platforms:
+          - windows_x64
+          jobParameters:
+            isOfficialBuild: ${{ variables.isOfficialBuild }}
+            testGroup: innerloop
+            nameSuffix: AllConfigurations
+            buildArgs: -s libs -c $(_BuildConfig) -allConfigurations
+            ${{ if eq(variables.isOfficialBuild, true) }}:
+              extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+              extraStepsParameters:
+                uploadIntermediateArtifacts: true
+                isOfficialBuild: true
+                librariesBinArtifactName: libraries_bin_official_allconfigurations
 
-  # Installer official builds need to build installers and need the libraries all configurations build
-  - ${{ if eq(variables.isOfficialBuild, true) }}:
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
-        jobParameters:
-          liveRuntimeBuildConfig: Release
-          liveLibrariesBuildConfig: Release
-          isOfficialBuild: ${{ variables.isOfficialBuild }}
-          useOfficialAllConfigurations: true
-          dependsOnGlobalBuild: true
-        platforms:
-        - Linux_x64
-        - windows_x64
+      # Installer official builds need to build installers and need the libraries all configurations build
+      - ${{ if eq(variables.isOfficialBuild, true) }}:
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/installer/jobs/build-job.yml
+            jobParameters:
+              liveRuntimeBuildConfig: Release
+              liveLibrariesBuildConfig: Release
+              isOfficialBuild: ${{ variables.isOfficialBuild }}
+              useOfficialAllConfigurations: true
+              dependsOnGlobalBuild: true
+            platforms:
+            - Linux_x64
+            - windows_x64
 
-  - ${{ if ne(variables.isOfficialBuild, true) }}:
-    #
-    # CoreCLR Test builds using live libraries release build
-    #
-    - 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
-          dependsOn:
-          - build_Linux_x64_Checked_
-          - build_Linux_x64_Release_
+      - ${{ if ne(variables.isOfficialBuild, true) }}:
+        #
+        # CoreCLR Test builds using live libraries release build
+        #
+        - 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
+              dependsOn:
+              - build_Linux_x64_Checked_
+              - build_Linux_x64_Release_
 
-    #
-    # CoreCLR Test executions using live libraries
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: Checked
-        platforms:
-        - Linux_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: Release
-          dependsOn:
-          - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked
+        #
+        # CoreCLR Test executions using live libraries
+        #
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+            buildConfig: Checked
+            platforms:
+            - Linux_x64
+            helixQueueGroup: pr
+            helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+            jobParameters:
+              testGroup: innerloop
+              liveLibrariesBuildConfig: Release
+              dependsOn:
+              - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
-        buildConfig: Checked
-        platforms:
-        - windows_x64
-        helixQueueGroup: pr
-        helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
-        jobParameters:
-          testGroup: innerloop
-          liveLibrariesBuildConfig: Release
-          dependsOn:
-          - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked
-          - build_windows_x64_Checked_
-          - build_windows_x64_Release_
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+            buildConfig: Checked
+            platforms:
+            - windows_x64
+            helixQueueGroup: pr
+            helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+            jobParameters:
+              testGroup: innerloop
+              liveLibrariesBuildConfig: Release
+              dependsOn:
+              - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked
+              - build_windows_x64_Checked_
+              - build_windows_x64_Release_
 
-    #
-    # Libraries Release Test Execution against a release coreclr runtime
-    #
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - Linux_x64
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isRollingBuild: false
-          isOfficialBuild: false
-          testScope: innerloop
-          liveRuntimeBuildConfig: Release
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          dependsOn:
-          - build_Linux_x64_Release_
+        #
+        # Libraries Release Test Execution against a release coreclr runtime
+        #
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+            buildConfig: Release
+            platforms:
+            - Linux_x64
+            helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+            jobParameters:
+              isRollingBuild: false
+              isOfficialBuild: false
+              testScope: innerloop
+              liveRuntimeBuildConfig: Release
+              dependsOnTestBuildConfiguration: Release
+              dependsOnTestArchitecture: x64
+              dependsOn:
+              - build_Linux_x64_Release_
 
-    - template: /eng/pipelines/common/platform-matrix.yml
-      parameters:
-        jobTemplate: /eng/pipelines/libraries/run-test-job.yml
-        buildConfig: Release
-        platforms:
-        - windows_x64
-        helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
-        jobParameters:
-          isRollingBuild: false
-          isOfficialBuild: false
-          testScope: innerloop
-          liveRuntimeBuildConfig: Release
-          dependsOnTestBuildConfiguration: Release
-          dependsOnTestArchitecture: x64
-          dependsOn:
-          - build_windows_x64_Release_
+        - template: /eng/pipelines/common/platform-matrix.yml
+          parameters:
+            jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+            buildConfig: Release
+            platforms:
+            - windows_x64
+            helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
+            jobParameters:
+              isRollingBuild: false
+              isOfficialBuild: false
+              testScope: innerloop
+              liveRuntimeBuildConfig: Release
+              dependsOnTestBuildConfiguration: Release
+              dependsOnTestArchitecture: x64
+              dependsOn:
+              - build_windows_x64_Release_
 
-- ${{ if eq(variables.isOfficialBuild, true) }}:
-  - template: /eng/pipelines/official/stages/publish.yml
-    parameters:
-      isOfficialBuild: ${{ variables.isOfficialBuild }}
+    - ${{ if eq(variables.isOfficialBuild, true) }}:
+      - template: /eng/pipelines/official/stages/publish.yml
+        parameters:
+          isOfficialBuild: ${{ variables.isOfficialBuild }}