-# 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
--- /dev/null
+### 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) }}'
--- /dev/null
+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 }}
+++ /dev/null
-### 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) }}'
condition: true
useContinueOnErrorDuringBuild: false
shouldContinueOnError: false
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
isOfficialBuild: false
runtimeFlavor: 'coreclr'
helixQueues: ''
workspace:
clean: all
- ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
- dependsOn: evaluate_paths
+ ${{ if eq(parameters.useCheckoutBundle, true) }}:
+ dependsOn: checkout
variables:
- name: _osParameter
- ${{ 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
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).
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') }}:
runtimeFlavorDisplayName: 'CoreCLR'
shouldContinueOnError: false
dependsOn: []
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
### Test run job
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') }}:
- 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
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
- 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
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
pr: none
jobs:
+#
+# Checkout repository
+#
+- template: /eng/pipelines/common/checkout-job.yml
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
# - 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
# - 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
- 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
- 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
- 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
- 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
- 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:
- 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:
- 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
- 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:
always: true
jobs:
+#
+# Checkout repository
+#
+
+- template: /eng/pipelines/common/checkout-job.yml
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
stagedBuild: false
timeoutInMinutes: ''
variables: {}
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
### Product build
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) }}
container: ''
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
isOfficialBuild: false
osGroup: ''
osSubgroup: ''
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')) }}:
buildConfig: ''
container: ''
crossDacPlatforms: {}
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
isOfficialBuild: false
osGroup: ''
osSubgroup: ''
runtimeVariant: ${{ parameters.runtimeVariant }}
stagedBuild: ${{ parameters.stagedBuild }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+ useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
name: crossdacpack
displayName: CrossDac Packaging
runtimeVariant: ''
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
stagedBuild: false
variables: {}
pool: ''
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) }}
runtimeVariant: ''
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
stagedBuild: false
variables: {}
pool: ''
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) }}
runtimeVariant: ''
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
stagedBuild: false
variables: {}
pool: ''
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) }}
container: ''
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
timeoutInMinutes: ''
stagedBuild: false
variables: {}
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) }}
platform: ''
runtimeFlavorDisplayName: ''
shouldContinueOnError: false
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
jobParameters: {}
jobs:
container: ${{ parameters.container }}
pool: ${{ parameters.pool }}
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths}}
+ useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }}
helixQueues:
runKind: '' # required -- test category
collectionType: ''
collectionName: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
jobs:
- template: xplat-pipeline-job.yml
continueOnError: ${{ parameters.continueOnError }}
collectionType: $ {{ parameters.collectionType }}
collectionName: ${{ parameters.collectionName }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+ useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
${{ if ne(parameters.displayName, '') }}:
displayName: '${{ parameters.displayName }}'
condition: ''
continueOnError: false
dependsOn: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
displayName: ''
timeoutInMinutes: ''
enableMicrobuild: ''
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 }}
- ${{insert}}: ${{ variable }}
steps:
- - checkout: self
- clean: true
- fetchDepth: $(checkoutFetchDepth)
+ - template: /eng/pipelines/common/checkout-step.yml
+ parameters:
+ useBundle: ${{ parameters.useCheckoutBundle }}
- ${{ parameters.steps }}
condition: true
continueOnError: false
dependsOn: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: ''
displayName: ''
timeoutInMinutes: ''
enableMicrobuild: ''
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 }}
- 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
buildSteps: []
dependsOn: []
dependsOnGlobalBuild: false
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
globalBuildSuffix: ''
variables: []
name: ''
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}',
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
container: ''
steps: []
dependsOn: []
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
variables: {}
name: ''
displayName: ''
- _BuildConfig: ${{ parameters.buildConfig }}
dependsOn:
- - ${{ if eq(parameters.dependOnEvaluatePaths, true) }}:
- - evaluate_paths
+ - ${{ if eq(parameters.useCheckoutBundle, true) }}:
+ - checkout
- ${{ parameters.dependsOn }}
workspace:
clean: all
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
preBuildSteps: []
container: ''
condition: true
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
shouldContinueOnError: false
variables: {}
pool: ''
preBuildSteps: ${{ parameters.preBuildSteps }}
container: ${{ parameters.container }}
condition: ${{ parameters.condition }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
+ useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
pool: ${{ parameters.pool }}
runtimeVariant: ${{ parameters.runtimeVariant }}
testScope: ${{ parameters.testScope }}
platform: ''
runtimeFlavorDisplayName: ''
shouldContinueOnError: false
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
jobParameters: {}
jobs:
container: ${{ parameters.container }}
pool: ${{ parameters.pool }}
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths}}
+ useCheckoutBundle: ${{ parameters.useCheckoutBundle }}
runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }}
helixQueues:
- template: variables.yml
jobs:
+ - ${{ if eq(variables.useCheckoutBundle, true) }}:
+ - template: /eng/pipelines/common/checkout-job.yml
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- template: variables.yml
jobs:
+ - ${{ if eq(variables.useCheckoutBundle, true) }}:
+ - template: /eng/pipelines/common/checkout-job.yml
#
# CoreCLR Build
dependsOnTestBuildConfiguration: Debug
dependsOnTestArchitecture: x64
dependsOnTestOsSubgroup: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
condition: true
shouldContinueOnError: false
variables: {}
${{ 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 }}
isOfficialBuild: false
crossBuild: false
crossrootfsDir: ''
- dependOnEvaluatePaths: false
+ useCheckoutBundle: false
### Product build
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) }}
crossrootfsDir: ''
strategy: ''
pool: ''
+ useCheckoutBundle: false
# arcade-specific parameters
condition: ''
continueOnError: false
dependsOn: ''
- dependOnEvaluatePaths: false
displayName: ''
timeoutInMinutes: ''
enableMicrobuild: ''
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 }}
- ${{insert}}: ${{ variable }}
steps:
- - checkout: self
- clean: true
- fetchDepth: $(checkoutFetchDepth)
+ - template: /eng/pipelines/common/checkout-step.yml
+ parameters:
+ useBundle: ${{ parameters.useCheckoutBundle }}
- ${{ parameters.steps }}
pool: ''
runtimeVariant: ''
liveRuntimeBuildConfig: 'release'
+ useCheckoutBundle: false
# arcade-specific parameters
condition: true
continueOnError: false
dependsOn: ''
- dependOnEvaluatePaths: false
displayName: ''
timeoutInMinutes: ''
enableMicrobuild: ''
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 }}
- 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
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
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
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
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
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
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))
#
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))
#
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))
#
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
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
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
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))
#
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
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
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
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
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
/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
/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))
#
/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
/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))
#
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))
#
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))
#
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))
#
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))
#
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
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
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))
#
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))
#
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))
#
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
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))
#
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))
#
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
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))
#
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))
#
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))
#
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))
#
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))
#
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
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))
#
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))
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