include:
- master
- release/3.0
+ - internal/release/3.*
pr:
- master
- release/3.0
+- internal/release/3.*
# Temporarily set a build number format that includes a large revision
# number that won't conflict with buildpipeline official builds.
name: $(Date:yyyyMMdd)$(Rev:.7r)
variables:
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
-
-resources:
- containers:
- - container: ubuntu_1404_arm_cross_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-cross-e435274-20180426002420
-
- - container: ubuntu_1604_arm64_cross_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921
-
- - container: musl_x64_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247
-
- - container: musl_arm64_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917
-
- - container: centos7_x64_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-d485f41-20173404063424
-
- - container: centos6_x64_build_image
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-376e1a3-20174311014331
+- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
+ value: true
jobs:
## \---------> Pri1 -----------------> plain runtests
## | \----------------> jitstress
## | \----------------> gcstress
+## | \----------------> runincontext
## | \----------------> maybe more (dynamically selected runtest modes)
## |
## \---------> Pri1 crossgen --------> plain runtests
## azure-pipelines.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> base.yml
## | (passed-in jobTemplate) | (arcade)
## \------> test-job.yml ------/
+## \------> format-job.yml ----/
# TODO: simplify logic surrounding official build/ci. See
# https://github.com/Microsoft/azure-pipelines-yaml/pull/46 for more information
#
-# Debug build (Pull request)
+# Debug builds
#
-- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: build-job.yml
buildConfig: debug
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Windows_NT_x64
+ - Windows_NT_x86
+ ${{ if and(in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Linux_arm
+ - Linux_arm64
+ - Linux_musl_arm64
+ - Linux_musl_x64
+ - Linux_rhel6_x64
+ - Linux_x64
+ - OSX_x64
+ - Windows_NT_arm
+ - Windows_NT_arm64
#
-# Checked build
+# Checked builds
#
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: build-job.yml
buildConfig: checked
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
platforms:
- Linux_arm
- Linux_arm64
+ - Linux_musl_x64
- Linux_x64
+ - OSX_x64
+ - Windows_NT_arm
+ - Windows_NT_arm64
- Windows_NT_x64
- Windows_NT_x86
+ ${{ if and(in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platformGroup: all
+ ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop') }}:
+ platformGroup: all
#
-# Release build (Pull request)
+# Release builds
#
-- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: build-job.yml
buildConfig: release
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Linux_arm64
+ - Linux_musl_x64
+ - Linux_rhel6_x64
+ - Windows_NT_arm
+ - Windows_NT_arm64
+ - Windows_NT_x64
+ ${{ if and(in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Linux_arm
+ - Linux_musl_arm64
+ - Linux_x64
+ - OSX_x64
+ - Windows_NT_x86
-#
-# Release build (Official build)
-#
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: build-job.yml
buildConfig: release
+ platformGroup: all
jobParameters:
# Publishing packages to blob feeds sometimes takes a long time
# due to waiting for an exclusive lock on the feed.
#
# Checked test builds
#
-
-# The jobs that can be triggered in PR, manually from ADO and that are scheduled
+# The test jobs that can be triggered by a PR, manually from ADO and that are scheduled
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'Manual', 'Schedule')) }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: test-job.yml
buildConfig: checked
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
platforms:
- Linux_arm
- Linux_arm64
+ - Linux_musl_x64
- Linux_x64
+ - OSX_x64
+ - Windows_NT_arm
+ - Windows_NT_arm64
- Windows_NT_x64
- Windows_NT_x86
+ helixQueueGroup: pr
+ ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop') }}:
+ platformGroup: all
+ helixQueueGroup: all
jobParameters:
${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
testGroup: innerloop
${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop') }}:
testGroup: outerloop
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitminopts-jitstress1-jitstress2') }}:
- testGroup: outerloop-jitminopts-jitstress1-jitstress2
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstressregs') }}:
- testGroup: outerloop-jitstressregs
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstress2-jitstressregs') }}:
- testGroup: outerloop-jitstress2-jitstressregs
- ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
- testGroup: outerloop-gcstress0x3-gcstress0xc
-
-# CI
-- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')) }}:
+
+# ReadyToRun test jobs that are triggered by default from a PR.
+
+- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: eng/platform-matrix.yml
parameters:
jobTemplate: test-job.yml
buildConfig: checked
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Linux_x64
+ - OSX_x64
+ - Windows_NT_x64
+ - Windows_NT_x86
+ helixQueueGroup: pr
+ jobParameters:
+ ${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
+ testGroup: innerloop
+ readyToRun: true
+ displayNameArgs: R2R
+
+#
+# CoreFX test runs against CoreCLR
+#
+
+- ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ - template: eng/platform-matrix.yml
+ parameters:
+ jobTemplate: test-job.yml
+ buildConfig: checked
+ ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ platforms:
+ - Linux_x64
+ - Windows_NT_x64
+ helixQueueGroup: corefx
+ jobParameters:
+ ${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
+ testGroup: innerloop
+ corefxTests: true
+ displayNameArgs: CoreFX
+
+# CI (merge) jobs
+
+- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ - template: eng/platform-matrix.yml
+ parameters:
+ jobTemplate: test-job.yml
+ buildConfig: checked
+ platformGroup: all
+ helixQueueGroup: ci
jobParameters:
testGroup: outerloop
parameters:
jobTemplate: test-job.yml
buildConfig: checked
+ platforms:
+ - Linux_arm64
+ - Linux_musl_x64
+ - Linux_musl_arm64
+ - Linux_rhel6_x64
+ - Linux_x64
+ - OSX_x64
+ - Windows_NT_x64
+ - Windows_NT_x86
+ - Windows_NT_arm
+ - Windows_NT_arm64
+ helixQueueGroup: ci
jobParameters:
- readyToRun: true
testGroup: outerloop
+ readyToRun: true
+ displayNameArgs: R2R
#
# Release test builds
buildConfig: release
platforms:
- Linux_musl_x64
+ helixQueueGroup: pr
jobParameters:
testGroup: innerloop
parameters:
jobTemplate: test-job.yml
buildConfig: release
+ platformGroup: all
+ helixQueueGroup: all
jobParameters:
testGroup: outerloop
parameters:
jobTemplate: test-job.yml
buildConfig: release
+ platformGroup: all
+ helixQueueGroup: all
jobParameters:
testGroup: outerloop
readyToRun: true
+ displayNameArgs: R2R
+# Format
+- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
+ - template: eng/platform-matrix.yml
+ parameters:
+ jobTemplate: format-job.yml
+ platforms:
+ - Linux_x64
+ - Windows_NT_x64
# Publish build information to Build Assets Registry