Bring back checkout bundle for PRs until AzDo fixes PR job checkouts (#46649)
authorSantiago Fernandez Madero <safern@microsoft.com>
Wed, 6 Jan 2021 23:29:33 +0000 (15:29 -0800)
committerGitHub <noreply@github.com>
Wed, 6 Jan 2021 23:29:33 +0000 (15:29 -0800)
65 files changed:
eng/pipelines/common/checkout-and-evaluate-paths.yml [moved from eng/pipelines/common/evaluate-default-paths.yml with 94% similarity]
eng/pipelines/common/checkout-job.yml [new file with mode: 0644]
eng/pipelines/common/checkout-step.yml [new file with mode: 0644]
eng/pipelines/common/evaluate-paths-job.yml [deleted file]
eng/pipelines/common/global-build-job.yml
eng/pipelines/common/templates/runtimes/build-test-job.yml
eng/pipelines/common/templates/runtimes/run-test-job.yml
eng/pipelines/common/variables.yml
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/gc-longrunning.yml
eng/pipelines/coreclr/gc-simulator.yml
eng/pipelines/coreclr/gcstress-extra.yml
eng/pipelines/coreclr/gcstress0x3-gcstress0xc.yml
eng/pipelines/coreclr/ilasm.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.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.yml
eng/pipelines/coreclr/libraries-jitstress2-jitstressregs.yml
eng/pipelines/coreclr/libraries-jitstressregs.yml
eng/pipelines/coreclr/perf.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.yml
eng/pipelines/coreclr/templates/build-jit-job.yml
eng/pipelines/coreclr/templates/build-job.yml
eng/pipelines/coreclr/templates/crossdac-pack.yml
eng/pipelines/coreclr/templates/crossgen-comparison-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/helix-queues-setup.yml
eng/pipelines/coreclr/templates/run-superpmi-job.yml
eng/pipelines/coreclr/templates/xplat-job.yml
eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
eng/pipelines/global-build.yml
eng/pipelines/installer/jobs/base-job.yml
eng/pipelines/libraries/base-job.yml
eng/pipelines/libraries/build-job.yml
eng/pipelines/libraries/helix-queues-setup.yml
eng/pipelines/libraries/outerloop-mono.yml
eng/pipelines/libraries/outerloop.yml
eng/pipelines/libraries/run-test-job.yml
eng/pipelines/mono/templates/build-job.yml
eng/pipelines/mono/templates/xplat-job.yml
eng/pipelines/mono/templates/xplat-pipeline-job.yml
eng/pipelines/runtime-linker-tests.yml
eng/pipelines/runtime-staging.yml
eng/pipelines/runtime.yml
eng/pipelines/runtimelab.yml

@@ -1,9 +1,8 @@
-# Template to evaluate common paths in different pipelines.
 parameters:
   extraSubsets: ''
 
 jobs:
-- template: /eng/pipelines/common/evaluate-paths-job.yml
+- template: /eng/pipelines/common/checkout-job.yml
   parameters:
     paths:
     - subset: coreclr
diff --git a/eng/pipelines/common/checkout-job.yml b/eng/pipelines/common/checkout-job.yml
new file mode 100644 (file)
index 0000000..9d7f427
--- /dev/null
@@ -0,0 +1,62 @@
+### Check out job creating a git bundle and publishing it
+### into an Azure artifact for reuse by the subsequent build and test execution phases.
+### If paths is specified, we will create a job using evaluate-changed-paths.yml template
+### for each path specified.
+
+parameters:
+  # Object containing subset include and exclude paths in an array form.
+  # Scenarios:
+  #  1. exclude paths are specified
+  #     Will include all paths except the ones in the exclude list.
+  #  2. include paths are specified
+  #     Will only include paths specified in the list.
+  #  3. exclude + include:
+  #     1st we evaluate changes for all paths except ones in excluded list. If we can't find
+  #     any applicable changes like that, then we evaluate changes for incldued paths
+  #     if any of these two finds changes, then a variable will be set to true.
+  #  In order to consume this variable you need to reference it via: $[ dependencies.checkout.outputs['SetPathVars_<subset>.containschange'] ]
+  #
+  #  Array form example
+  #  paths:
+  #  - subset: coreclr
+  #    include:
+  #    - src/libraries/System.Private.CoreLib/*
+  #    exclude:
+  #    - src/libraries/*
+  #
+  #  This example will include ALL path changes except the ones under src/libraries/*!System.Private.CoreLib/*
+  paths: []
+
+jobs:
+- job: checkout
+  displayName: Checkout
+
+  pool:
+    vmImage: 'macOS-10.14'
+
+  steps:
+  - checkout: self
+    clean: true
+    fetchDepth: 20
+
+  - script: git bundle create $(Build.StagingDirectory)/Checkout.bundle HEAD
+    displayName: Create Checkout.bundle
+
+  - publish: $(Build.StagingDirectory)/Checkout.bundle
+    artifact: Checkout_bundle
+    displayName: Upload Checkout.bundle
+
+  - ${{ if and(ne(parameters.paths[0], ''), eq(variables['Build.Reason'], 'PullRequest')) }}:
+    - ${{ each path in parameters.paths }}:
+      - template: evaluate-changed-paths.yml
+        parameters:
+          subsetName: ${{ path.subset }} 
+          arguments:
+          # The commit that we're building is always a merge commit that is merging into the target branch.
+          # So the first parent of the commit is on the target branch and the second parent is on the source branch.
+          - --difftarget HEAD^1
+          - --subset ${{ path.subset }}
+          - ${{ if ne(path.include[0], '') }}:
+            - --includepaths '${{ join('+', path.include) }}'
+          - ${{ if ne(path.exclude[0], '') }}:
+            - --excludepaths '${{ join('+', path.exclude) }}'
diff --git a/eng/pipelines/common/checkout-step.yml b/eng/pipelines/common/checkout-step.yml
new file mode 100644 (file)
index 0000000..39575a8
--- /dev/null
@@ -0,0 +1,23 @@
+parameters:
+  useBundle: true
+  fetchDepth: 20
+
+steps:
+# Checkout from bundle
+- ${{ if eq(parameters.useBundle, true) }}:
+  - checkout: none
+
+  - download: current
+    artifact: Checkout_bundle
+    displayName: Download Checkout.bundle
+
+  - script: |
+      $(setScriptToEchoAndFailOnNonZero)
+      git clone $(Pipeline.Workspace)/Checkout_bundle/Checkout.bundle .
+      git remote set-url origin $(Build.Repository.Uri)
+    displayName: Clone the repository from Checkout.bundle
+
+- ${{ if eq(parameters.useBundle, false) }}:
+    - checkout: self
+      clean: true
+      fetchDepth: ${{ parameters.fetchDepth }}
diff --git a/eng/pipelines/common/evaluate-paths-job.yml b/eng/pipelines/common/evaluate-paths-job.yml
deleted file mode 100644 (file)
index 58f0e96..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-### Job used to evaluate changed paths on a pull request to emit variables to condition jobs based on paths.
-
-parameters:
-  # Object containing subset include and exclude paths in an array form.
-  # Scenarios:
-  #  1. exclude paths are specified
-  #     Will include all paths except the ones in the exclude list.
-  #  2. include paths are specified
-  #     Will only include paths specified in the list.
-  #  3. exclude + include:
-  #     1st we evaluate changes for all paths except ones in excluded list. If we can't find
-  #     any applicable changes like that, then we evaluate changes for incldued paths
-  #     if any of these two finds changes, then a variable will be set to true.
-  #  In order to consume this variable you need to reference it via: $[ dependencies.evaluate_paths.outputs['SetPathVars_<subset>.containschange'] ]
-  #
-  #  Array form example
-  #  paths:
-  #  - subset: coreclr
-  #    include:
-  #    - src/libraries/System.Private.CoreLib/*
-  #    exclude:
-  #    - src/libraries/*
-  #
-  #  This example will include ALL path changes under src/libraries/ except the ones under src/libraries/*!System.Private.CoreLib/*
-  paths: []
-
-
-jobs:
-  - job: evaluate_paths
-    displayName: Evaluate Paths
-    pool:
-      vmImage: 'macOS-10.14'
-
-    steps:
-    - checkout: self
-      clean: true
-      fetchDepth: $(checkoutFetchDepth)
-
-    - ${{ if ne(parameters.paths[0], '') }}:
-      - ${{ each path in parameters.paths }}:
-        - template: evaluate-changed-paths.yml
-          parameters:
-            subsetName: ${{ path.subset }} 
-            arguments:
-            # The commit that we're building is always a merge commit that is merging into the target branch.
-            # So the first parent of the commit is on the target branch and the second parent is on the source branch.
-            - --difftarget HEAD^1
-            - --subset ${{ path.subset }}
-            - ${{ if ne(path.include[0], '') }}:
-              - --includepaths '${{ join('+', path.include) }}'
-            - ${{ if ne(path.exclude[0], '') }}:
-              - --excludepaths '${{ join('+', path.exclude) }}'
index 11d126c..c197d33 100644 (file)
@@ -16,7 +16,7 @@ parameters:
   condition: true
   useContinueOnErrorDuringBuild: false
   shouldContinueOnError: false
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   isOfficialBuild: false
   runtimeFlavor: 'coreclr'
   helixQueues: ''
@@ -40,8 +40,8 @@ jobs:
     workspace:
       clean: all
 
-    ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
-      dependsOn: evaluate_paths
+    ${{ if eq(parameters.useCheckoutBundle, true) }}:
+      dependsOn: checkout
 
     variables:
       - name: _osParameter
@@ -75,9 +75,9 @@ jobs:
         - ${{ variable }}
 
     steps:
-    - checkout: self
-      clean: true
-      fetchDepth: $(checkoutFetchDepth)
+    - template: /eng/pipelines/common/checkout-step.yml
+      parameters:
+        useBundle: ${{ parameters.useCheckoutBundle }}
 
     - ${{ if eq(parameters.isOfficialBuild, true) }}:
       - template: /eng/pipelines/common/restore-internal-tools.yml
index cb84d34..4f49d91 100644 (file)
@@ -23,7 +23,7 @@ parameters:
   runtimeFlavorDisplayName: 'CoreCLR'
   runtimeVariant: ''
   dependsOn: []
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
 
 ### Build managed test components (native components are getting built as part
 ### of the the product build job).
@@ -48,7 +48,8 @@ jobs:
     liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
     variables: ${{ parameters.variables }}
     pool: ${{ parameters.pool }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
+
 
     # Test jobs should continue on error for internal builds
     ${{ if eq(variables['System.TeamProject'], 'internal') }}:
index eac13a7..dce11d3 100644 (file)
@@ -23,7 +23,7 @@ parameters:
   runtimeFlavorDisplayName: 'CoreCLR'
   shouldContinueOnError: false
   dependsOn: []
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
 
 ### Test run job
 
@@ -47,7 +47,7 @@ jobs:
     runtimeVariant: ${{ parameters.runtimeVariant }}
     pool: ${{ parameters.pool }}
     condition: ${{ parameters.condition }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Test jobs should continue on error for internal builds
     ${{ if eq(variables['System.TeamProject'], 'internal') }}:
index 7605434..ea532ac 100644 (file)
@@ -4,9 +4,9 @@ variables:
 - name: isFullMatrix
   value: ${{ and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}
 
-# We only run evaluate paths on runtime and runtime-staging pipelines on PRs
-- name: dependOnEvaluatePaths
-  value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-staging')) }}
+# We only use checkout bundle on PRs
+- name: useCheckoutBundle
+  value: ${{ eq(variables['Build.Reason'], 'PullRequest') }}
 - name: debugOnPrReleaseOnRolling
   ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
     value: Release
index c992962..092f82a 100644 (file)
@@ -21,7 +21,7 @@ jobs:
     shouldContinueOnError: ${{ and(endsWith(variables['Build.DefinitionName'], 'staging'), eq(variables['Build.Reason'], 'PullRequest')) }}
 
     # keep in sync with /eng/pipelines/common/variables.yml
-    dependOnEvaluatePaths: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-staging')) }}
+    useCheckoutBundle: ${{ eq(variables['Build.Reason'], 'PullRequest') }}
 
     variables:
       # Disable component governance in our CI builds. These builds are not shipping nor
index dae6c19..90c12c5 100644 (file)
@@ -24,9 +24,18 @@ trigger:
     - eng/pipelines/libraries/*
     - eng/pipelines/runtime.yml
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
 
 #
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
+
+#
 # Debug builds
 #
 - template: /eng/pipelines/common/platform-matrix.yml
index afd30af..d296a73 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 8c8a734..96dca34 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 91fd57d..a750d69 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index bbee75f..ec7a348 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index e689991..ae71788 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 354d047..f681df4 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index ed48e1c..27c54ef 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index a80132f..784dc4d 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index ac69b52..8fec266 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 1aa2757..715c59d 100644 (file)
@@ -17,7 +17,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index eb209a1..e07c9bc 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index cd2a0b4..d835a05 100644 (file)
@@ -12,6 +12,10 @@ trigger:
 pr: none
 
 jobs:
+#
+# Checkout repository
+#
+- template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 260ec5e..09c5f63 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 87d3c1e..8d5f8ec 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index b8df154..0698bff 100644 (file)
@@ -14,7 +14,15 @@ schedules:
     - release/*.*
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 5a3933e..b6804b5 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 83294c6..5e5802a 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 18622bd..49f9e5f 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index d9aebfe..5569998 100644 (file)
@@ -9,7 +9,15 @@ trigger: none
 #     - master
 #   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Build CoreCLR checked and libraries Release
index 9493a38..5f8d714 100644 (file)
@@ -9,7 +9,15 @@ trigger: none
 #     - master
 #   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Build CoreCLR checked and libraries Release
index 0d014d1..7cc23bf 100644 (file)
@@ -14,7 +14,15 @@ schedules:
     - release/*.*
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Build CoreCLR checked and libraries Release
index 1722764..5d3ceea 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Build CoreCLR checked and libraries Release
index 5718686..31341dd 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Build CoreCLR checked and libraries Release
index 4105220..c257eed 100644 (file)
@@ -19,7 +19,15 @@ trigger:
     - SECURITY.md
     - THIRD-PARTY-NOTICES.TXT
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 # build coreclr and libraries
 - template: /eng/pipelines/common/platform-matrix.yml
index 2dfb7f7..f8ff999 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index a4773d1..ea741ba 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index d791c65..e42d890 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 #
 # Release CoreCLR and Library builds
index 8fbbe6c..658377f 100644 (file)
@@ -8,7 +8,15 @@ schedules:
     - master
   always: true
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
+#
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 4ead4f9..a3baaba 100644 (file)
@@ -24,6 +24,11 @@ schedules:
   always: true
 
 jobs:
+#
+# Checkout repository
+#
+
+- template: /eng/pipelines/common/checkout-job.yml
 
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
index 14b364c..519fb4a 100644 (file)
@@ -10,7 +10,7 @@ parameters:
   stagedBuild: false
   timeoutInMinutes: ''
   variables: {}
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
 
 ### Product build
 jobs:
@@ -24,7 +24,7 @@ jobs:
     enableMicrobuild: true
     stagedBuild: ${{ parameters.stagedBuild }}
     pool: ${{ parameters.pool }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     name: ${{ format('coreclr_jit_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
index bae0c5f..362d5d6 100644 (file)
@@ -8,7 +8,7 @@ parameters:
   container: ''
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   isOfficialBuild: false
   osGroup: ''
   osSubgroup: ''
@@ -36,7 +36,7 @@ jobs:
     stagedBuild: ${{ parameters.stagedBuild }}
     pool: ${{ parameters.pool }}
     condition: ${{ parameters.condition }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     ${{ if and(ne(parameters.testGroup, 'clrTools'), eq(parameters.compilerName, 'gcc')) }}:
index 77802a2..219c523 100644 (file)
@@ -3,7 +3,7 @@ parameters:
   buildConfig: ''
   container: ''
   crossDacPlatforms: {}
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   isOfficialBuild: false
   osGroup: ''
   osSubgroup: ''
@@ -29,7 +29,7 @@ jobs:
     runtimeVariant: ${{ parameters.runtimeVariant }}
     stagedBuild: ${{ parameters.stagedBuild }}
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     name: crossdacpack
     displayName: CrossDac Packaging
index 282dcee..beb41c7 100644 (file)
@@ -8,7 +8,7 @@ parameters:
   runtimeVariant: ''
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   stagedBuild: false
   variables: {}
   pool: ''
@@ -37,7 +37,7 @@ jobs:
     liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
     helixType: 'test/crossgen-comparison/'
     pool: ${{ parameters.pool }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     name: ${{ format('test_crossgen_comparison_{0}{1}_{1}_{2}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
index 1a326c1..66331b3 100644 (file)
@@ -8,7 +8,7 @@ parameters:
   runtimeVariant: ''
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   stagedBuild: false
   variables: {}
   pool: ''
@@ -37,7 +37,7 @@ jobs:
     liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
     helixType: 'test/crossgen-comparison/'
     pool: ${{ parameters.pool }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     name: ${{ format('test_crossgen2_comparison_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
index 8bc7f6f..dffcbf3 100644 (file)
@@ -8,7 +8,7 @@ parameters:
   runtimeVariant: ''
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   stagedBuild: false
   variables: {}
   pool: ''
@@ -41,7 +41,7 @@ jobs:
     pool: ${{ parameters.pool }}
     targetos: ${{ parameters.targetos }}
     targetarch: ${{ parameters.targetarch }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     name: ${{ format('test_crossgen2_comparison_{0}{1}_{2}_{3}_{4}_{5}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.targetarch, parameters.targetos) }}
index 783fdcf..6f2f735 100644 (file)
@@ -6,7 +6,7 @@ parameters:
   container: ''
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   timeoutInMinutes: ''
   stagedBuild: false
   variables: {}
@@ -24,7 +24,7 @@ jobs:
     container: ${{ parameters.container }}
     crossBuild: ${{ parameters.crossBuild }}
     crossrootfsDir: ${{ parameters.crossrootfsDir }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
     stagedBuild: ${{ parameters.stagedBuild }}
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
     name: ${{ format('format_{0}{1}_{2}', parameters.osGroup, parameters.osSubgroup, parameters.archType) }}
index 1744824..949d37b 100644 (file)
@@ -9,7 +9,7 @@ parameters:
   platform: ''
   runtimeFlavorDisplayName: ''
   shouldContinueOnError: false
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   jobParameters: {}
 
 jobs:
@@ -22,7 +22,7 @@ jobs:
     container: ${{ parameters.container }}
     pool: ${{ parameters.pool }}
     shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths}}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
     runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }}
     helixQueues:
 
index 30eb295..abb5990 100644 (file)
@@ -22,7 +22,7 @@ parameters:
   runKind: ''                     # required -- test category
   collectionType: ''
   collectionName: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
 
 jobs:
 - template: xplat-pipeline-job.yml
@@ -38,7 +38,7 @@ jobs:
     continueOnError: ${{ parameters.continueOnError }}
     collectionType: $ {{ parameters.collectionType }}
     collectionName: ${{ parameters.collectionName }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     ${{ if ne(parameters.displayName, '') }}:
       displayName: '${{ parameters.displayName }}'
index 471c39b..334e71b 100644 (file)
@@ -16,7 +16,7 @@ parameters:
   condition: ''
   continueOnError: false
   dependsOn: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   displayName: ''
   timeoutInMinutes: ''
   enableMicrobuild: ''
@@ -33,8 +33,8 @@ jobs:
     container: ${{ parameters.container }}
     condition: ${{ parameters.condition }}
     dependsOn:
-      - ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
-        - evaluate_paths
+      - ${{ if eq(parameters.useCheckoutBundle, true) }}:
+        - checkout
       - ${{ if ne(parameters.dependsOn, '') }}:
         - ${{ parameters.dependsOn }}
 
@@ -103,8 +103,8 @@ jobs:
       - ${{insert}}: ${{ variable }}
 
     steps:
-    - checkout: self
-      clean: true
-      fetchDepth: $(checkoutFetchDepth)
+    - template: /eng/pipelines/common/checkout-step.yml
+      parameters:
+        useBundle: ${{ parameters.useCheckoutBundle }}
 
     - ${{ parameters.steps }}
index 93c8ed0..736b5a9 100644 (file)
@@ -18,7 +18,7 @@ parameters:
   condition: true
   continueOnError: false
   dependsOn: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: ''
   displayName: ''
   timeoutInMinutes: ''
   enableMicrobuild: ''
@@ -41,12 +41,12 @@ jobs:
     stagedBuild: ${{ parameters.stagedBuild }}
     strategy: ${{ parameters.strategy }}
     pool: ${{ parameters.pool }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # arcade-specific parameters
     condition: and(succeeded(), ${{ parameters.condition }})
     continueOnError: ${{ parameters.continueOnError }}
     dependsOn: ${{ parameters.dependsOn }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
     displayName: ${{ parameters.displayName }}
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
     enableMicrobuild: ${{ parameters.enableMicrobuild }}
index 73f42cb..906bfda 100644 (file)
@@ -28,8 +28,17 @@ pr:
     - SECURITY.md
     - THIRD-PARTY-NOTICES.TXT
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
 #
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
+
+#
 # Build with Release config and Debug runtimeConfiguration
 #
 - template: /eng/pipelines/common/platform-matrix.yml
index 68e2737..ada47a6 100644 (file)
@@ -13,7 +13,7 @@ parameters:
   buildSteps: []
   dependsOn: []
   dependsOnGlobalBuild: false
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   globalBuildSuffix: ''
   variables: []
   name: ''
@@ -295,8 +295,8 @@ jobs:
       value: ' /p:LibrariesConfiguration=${{ parameters.liveLibrariesBuildConfig }}'
 
   dependsOn:
-  - ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
-    - evaluate_paths
+  - ${{ if eq(parameters.useCheckoutBundle, true) }}:
+    - checkout
   - ${{ parameters.dependsOn }}
   - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
     - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}',
@@ -348,9 +348,9 @@ jobs:
         continueOnError: false
         condition: and(succeeded(), in(variables['SignType'], 'real', 'test'))
 
-  - checkout: self
-    clean: true
-    fetchDepth: $(checkoutFetchDepth)
+  - template: /eng/pipelines/common/checkout-step.yml
+    parameters:
+      useBundle: ${{ parameters.useCheckoutBundle }}
 
   - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
     - template: /eng/pipelines/common/download-artifact-step.yml
index 4307af1..1201959 100644 (file)
@@ -15,7 +15,7 @@ parameters:
   container: ''
   steps: []
   dependsOn: []
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   variables: {}
   name: ''
   displayName: ''
@@ -118,8 +118,8 @@ jobs:
         - _BuildConfig: ${{ parameters.buildConfig }}
 
       dependsOn:
-      - ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
-        - evaluate_paths
+      - ${{ if eq(parameters.useCheckoutBundle, true) }}:
+        - checkout
       - ${{ parameters.dependsOn }}
       workspace:
         clean: all
@@ -128,9 +128,9 @@ jobs:
       timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
 
       steps:
-      - checkout: self
-        clean: true
-        fetchDepth: $(checkoutFetchDepth)
+      - template: /eng/pipelines/common/checkout-step.yml
+        parameters:
+          useBundle: ${{ parameters.useCheckoutBundle }}
 
       - ${{ if and(ne(parameters.liveRuntimeBuildConfig, ''), eq(parameters.runTests, true)) }}:
         - template: /eng/pipelines/common/download-artifact-step.yml
index 9d26ad7..c3972f7 100644 (file)
@@ -24,7 +24,7 @@ parameters:
   preBuildSteps: []
   container: ''
   condition: true
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   shouldContinueOnError: false
   variables: {}
   pool: ''
@@ -51,7 +51,7 @@ jobs:
       preBuildSteps: ${{ parameters.preBuildSteps }}
       container: ${{ parameters.container }}
       condition: ${{ parameters.condition }}
-      dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+      useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
       pool: ${{ parameters.pool }}
       runtimeVariant: ${{ parameters.runtimeVariant }}
       testScope: ${{ parameters.testScope }}
index ed362e7..1822d1d 100644 (file)
@@ -9,7 +9,7 @@ parameters:
   platform: ''
   runtimeFlavorDisplayName: ''
   shouldContinueOnError: false
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   jobParameters: {}
 
 jobs:
@@ -22,7 +22,7 @@ jobs:
     container: ${{ parameters.container }}
     pool: ${{ parameters.pool }}
     shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths}}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
     runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }}
     helixQueues:
 
index 2dc1e51..ae443cf 100644 (file)
@@ -13,6 +13,8 @@ variables:
   - template: variables.yml
 
 jobs:
+  - ${{ if eq(variables.useCheckoutBundle, true) }}:
+    - template: /eng/pipelines/common/checkout-job.yml
 
   - template: /eng/pipelines/common/platform-matrix.yml
     parameters:
index 0a643a6..3da58fd 100644 (file)
@@ -12,6 +12,8 @@ variables:
   - template: variables.yml
 
 jobs:
+  - ${{ if eq(variables.useCheckoutBundle, true) }}:
+    - template: /eng/pipelines/common/checkout-job.yml
 
   #
   # CoreCLR Build
index c233578..9fcbaf9 100644 (file)
@@ -18,7 +18,7 @@ parameters:
   dependsOnTestBuildConfiguration: Debug
   dependsOnTestArchitecture: x64
   dependsOnTestOsSubgroup: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
   condition: true
   shouldContinueOnError: false
   variables: {}
@@ -55,7 +55,7 @@ jobs:
       ${{ if eq(parameters.interpreter, 'true') }}:
         testDisplayName: ${{ parameters.runtimeFlavor }}_interpreter_${{ parameters.liveRuntimeBuildConfig }}
 
-      dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+      useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
       dependsOn:
       - ${{ if ne(parameters.dependsOn[0], '') }}:
         - ${{ parameters.dependsOn }}
index d67df20..c9cf9a6 100644 (file)
@@ -13,7 +13,7 @@ parameters:
   isOfficialBuild: false
   crossBuild: false
   crossrootfsDir: ''
-  dependOnEvaluatePaths: false
+  useCheckoutBundle: false
 
 ### Product build
 jobs:
@@ -30,7 +30,7 @@ jobs:
     crossBuild: ${{ parameters.crossBuild }}
     crossrootfsDir: ${{ parameters.crossroofsDir }}
     condition: ${{ parameters.condition }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # Compute job name from template parameters
     name: ${{ format('mono_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
index 3c91c47..240f1ed 100644 (file)
@@ -10,12 +10,12 @@ parameters:
   crossrootfsDir: ''
   strategy: ''
   pool: ''
+  useCheckoutBundle: false
 
   # arcade-specific parameters
   condition: ''
   continueOnError: false
   dependsOn: ''
-  dependOnEvaluatePaths: false
   displayName: ''
   timeoutInMinutes: ''
   enableMicrobuild: ''
@@ -32,8 +32,8 @@ jobs:
     container: ${{ parameters.container }}
     condition: ${{ parameters.condition }}
     dependsOn:
-      - ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
-        - evaluate_paths
+      - ${{ if eq(parameters.useCheckoutBundle, true) }}:
+        - checkout
       - ${{ if ne(parameters.dependsOn, '') }}:
         - ${{ parameters.dependsOn }}
 
@@ -96,8 +96,8 @@ jobs:
       - ${{insert}}: ${{ variable }}
 
     steps:
-    - checkout: self
-      clean: true
-      fetchDepth: $(checkoutFetchDepth)
+    - template: /eng/pipelines/common/checkout-step.yml
+      parameters:
+        useBundle: ${{ parameters.useCheckoutBundle }}
 
     - ${{ parameters.steps }}
index 31b61c2..1c377a3 100644 (file)
@@ -11,12 +11,12 @@ parameters:
   pool: ''
   runtimeVariant: ''
   liveRuntimeBuildConfig: 'release'
+  useCheckoutBundle: false
 
   # arcade-specific parameters
   condition: true
   continueOnError: false
   dependsOn: ''
-  dependOnEvaluatePaths: false
   displayName: ''
   timeoutInMinutes: ''
   enableMicrobuild: ''
@@ -37,12 +37,12 @@ jobs:
     strategy: ${{ parameters.strategy }}
     pool: ${{ parameters.pool }}
     runtimeVariant: ${{ parameters.runtimeVariant }}
+    useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
 
     # arcade-specific parameters
     condition: and(succeeded(), ${{ parameters.condition }})
     continueOnError: ${{ parameters.continueOnError }}
     dependsOn: ${{ parameters.dependsOn }}
-    dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
     displayName: ${{ parameters.displayName }}
     timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
     enableMicrobuild: ${{ parameters.enableMicrobuild }}
index 729cb17..3b4b679 100644 (file)
@@ -45,8 +45,17 @@ pr:
     - SECURITY.md
     - THIRD-PARTY-NOTICES.TXT
 
+variables:
+  - template: /eng/pipelines/common/variables.yml
+
 jobs:
 #
+# Checkout repository
+#
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-job.yml
+
+#
 # Build Release config vertical for Windows, Linux, Linux musl and OSX
 #
 - template: /eng/pipelines/common/platform-matrix.yml
index a472723..55579c2 100644 (file)
@@ -50,10 +50,10 @@ variables:
 
 jobs:
 #
-# Evaluate paths
+# Checkout repository and evaluate paths
 #
-- ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-  - template: /eng/pipelines/common/evaluate-default-paths.yml
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-and-evaluate-paths.yml
 
 #
 # Build the whole product using Mono and run libraries tests
@@ -70,9 +70,9 @@ jobs:
     variables:
       # map dependencies variables to local variables
       - name: librariesContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ]
       - name: monoContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ]
     jobParameters:
       testGroup: innerloop
       nameSuffix: AllSubsets_Mono
@@ -80,9 +80,9 @@ jobs:
       timeoutInMinutes: 120
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
       # extra steps, run tests
       extraStepsTemplate: /eng/pipelines/libraries/helix.yml
@@ -125,8 +125,8 @@ jobs:
       timeoutInMinutes: 240
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
       # extra steps, run tests
       extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
index 6712fa3..606bcce 100644 (file)
@@ -52,10 +52,10 @@ variables:
 
 jobs:
 #
-# Evaluate paths
+# Checkout repository and evaluate paths
 #
-- ${{ if eq(variables.dependOnEvaluatePaths, true) }}:
-  - template: /eng/pipelines/common/evaluate-default-paths.yml
+- ${{ if eq(variables.useCheckoutBundle, true) }}:
+  - template: /eng/pipelines/common/checkout-and-evaluate-paths.yml
 
 #
 # Build CoreCLR checked
@@ -81,8 +81,8 @@ jobs:
       testGroup: innerloop
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -100,7 +100,7 @@ jobs:
       compilerName: gcc
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -117,9 +117,9 @@ jobs:
       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(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -166,7 +166,7 @@ jobs:
             eq(variables['Build.SourceBranchName'], 'master'),
             eq(variables['System.PullRequest.TargetBranch'], 'master')),
           or(
-            eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+            eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
             eq(variables['isFullMatrix'], true)))
 
 # Build and test clr tools
@@ -180,7 +180,7 @@ jobs:
       testGroup: clrTools
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 # Build the whole product using Mono runtime
@@ -203,9 +203,9 @@ jobs:
       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.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -224,9 +224,9 @@ jobs:
       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.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -243,9 +243,9 @@ jobs:
     variables:
       # map dependencies variables to local variables
       - name: librariesContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ]
       - name: monoContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ]
     jobParameters:
       testGroup: innerloop
       nameSuffix: AllSubsets_Mono
@@ -253,9 +253,9 @@ jobs:
       timeoutInMinutes: 120
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
       # extra steps, run tests
       extraStepsTemplate: /eng/pipelines/libraries/helix.yml
@@ -287,9 +287,9 @@ jobs:
     variables:
       # map dependencies variables to local variables
       - name: librariesContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ]
       - name: monoContainsChange
-        value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
+        value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ]
     jobParameters:
       testGroup: innerloop
       nameSuffix: AllSubsets_Mono
@@ -297,9 +297,9 @@ jobs:
       timeoutInMinutes: 180
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
       # extra steps, run tests
       extraStepsTemplate: /eng/pipelines/libraries/helix.yml
@@ -341,8 +341,8 @@ jobs:
       timeoutInMinutes: 180
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
       # extra steps, run tests
       extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
@@ -367,9 +367,9 @@ jobs:
                  /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -387,9 +387,9 @@ jobs:
                  /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -410,9 +410,9 @@ jobs:
                  /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -429,9 +429,9 @@ jobs:
                  /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -455,8 +455,8 @@ jobs:
     jobParameters:
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -478,8 +478,8 @@ jobs:
     jobParameters:
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -497,9 +497,9 @@ jobs:
     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.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -518,8 +518,8 @@ jobs:
       runtimeVariant: llvmaot
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -576,7 +576,7 @@ jobs:
       liveRuntimeBuildConfig: release
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -595,7 +595,7 @@ jobs:
       testScope: innerloop
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -611,7 +611,7 @@ jobs:
       runTests: true
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -664,7 +664,7 @@ jobs:
       liveLibrariesBuildConfig: Release
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -682,8 +682,8 @@ jobs:
       liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -705,8 +705,8 @@ jobs:
       liveLibrariesBuildConfig: Release
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -725,8 +725,8 @@ jobs:
       liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -745,8 +745,8 @@ jobs:
       liveRuntimeBuildConfig: release
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -768,8 +768,8 @@ jobs:
       liveRuntimeBuildConfig: release
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 #
 # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
@@ -792,8 +792,8 @@ jobs:
       runtimeVariant: llvmaot
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -821,8 +821,8 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -850,8 +850,8 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -876,7 +876,7 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -906,7 +906,7 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -932,7 +932,7 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -952,7 +952,7 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
           eq(variables['isFullMatrix'], true))
 
 #
@@ -974,6 +974,6 @@ jobs:
       dependsOnTestArchitecture: x64
       condition: >-
         or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
           eq(variables['isFullMatrix'], true))
index aa8ba44..f80fd6b 100644 (file)
@@ -52,6 +52,11 @@ variables:
 stages:
 - stage: Build
   jobs:
+  #
+  # Checkout repository
+  #
+  - ${{ if eq(variables.useCheckoutBundle, true) }}:
+    - template: /eng/pipelines/common/checkout-job.yml
 
   #
   # Build with Debug config and Checked runtimeConfiguration