2 # Temporarily set a build number format that includes a large revision
3 # number that won't conflict with buildpipeline official builds.
4 name: $(Date:yyyyMMdd)$(Rev:.7r)
7 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
11 - container: ubuntu_1404_arm_cross_build_image
12 image: microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180426002420
14 - container: ubuntu_1604_arm64_cross_build_image
15 image: microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921
17 - container: musl_x64_build_image
18 image: microsoft/dotnet-buildtools-prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247
20 - container: centos7_x64_build_image
21 image: microsoft/dotnet-buildtools-prereqs:centos-7-d485f41-20173404063424
23 - container: centos6_x64_build_image
24 image: microsoft/dotnet-buildtools-prereqs:centos-6-376e1a3-20174311014331
34 ## The following is the matrix of test runs that we have. This is
35 ## duplicated for each os/arch combination in platform-matrix.yml.
38 ## Product build Test build Test run
39 ## (Azure DevOps) (Azure DevOps) (helix)
41 ## ###########################################################################################
45 ## Checked ----------> Pri0 -----------------> plain runtests
47 ## \---------> Pri1 -----------------> plain runtests
48 ## | \----------------> jitstress
49 ## | \----------------> gcstress
50 ## | \----------------> maybe more (dynamically selected runtest modes)
52 ## \---------> Pri1 crossgen --------> plain runtests
53 ## \-------> jitstress
55 ## \-------> maybe more (dynamically selected runtest modes)
57 ## Release ----------> Pri1 -----------------> plain runtests
59 ## \---------> Pri1 crossgen --------> plain runtests
63 ## Each build or test job is defined in Azure DevOps, and will show
64 ## up in the UI in the order in which they are defined here. The
65 ## build and test build job matrix is defined statically, but
66 ## queue-time inputs can be used to control whether a job executes
67 ## (used to select which jobs run in ci vs for official builds), or
68 ## to select test modes. This should eventually be used to enable
69 ## requesting specific test runs from pull requests.
73 ## Templates used to define jobs:
74 ## Please update this if the factoring changes.
76 ## This file defines the set of jobs in a platform-agnostic manner,
77 ## using the platform-matrix.yml template. This will create one job
78 ## for each platform from the passed-in jobTemplate (either a build
79 ## job or a test job). The build-job.yml and test-job.yml templates
80 ## use xplat-job.yml to handle some of the common logic for
81 ## abstracting over platforms. Finally, xplat-job.yml uses the arcade
82 ## base.yml job template, which sets up telemetry and signing support.
84 ## azure-pipelines.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> base.yml
85 ## | (passed-in jobTemplate) | (arcade)
86 ## \------> test-job.yml ------/
88 # TODO: simplify logic surrounding official build/ci. See
89 # https://github.com/Microsoft/azure-pipelines-yaml/pull/46 for more information
92 # Debug build (Pull Request)
94 - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
95 - template: eng/platform-matrix.yml
97 jobTemplate: build-job.yml
103 - ${{ if eq(variables['System.TeamProject'], 'public') }}:
104 - template: eng/platform-matrix.yml
106 jobTemplate: build-job.yml
110 # Release build (Official Build, Pull Request)
112 - ${{ if xor(eq(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}:
113 - template: eng/platform-matrix.yml
115 jobTemplate: build-job.yml
118 # Publishing packages to blob feeds sometimes takes a long time
119 # due to waiting for an exclusive lock on the feed.
120 # See https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/AsyncPublishing.md
121 timeoutInMinutes: 120
124 # Checked test builds
127 # Pri0 (Pull Request)
128 - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
129 - template: eng/platform-matrix.yml
131 jobTemplate: test-job.yml
136 asString: 'normal,no_tiered_compilation'
139 - no_tiered_compilation
140 timeoutInMinutes: 240
141 timeoutPerTestInMinutes: 10
144 - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')) }}:
145 - template: eng/platform-matrix.yml
147 jobTemplate: test-job.yml
152 asString: 'normal,no_tiered_compilation'
155 - no_tiered_compilation
156 timeoutInMinutes: 360
157 timeoutPerTestInMinutes: 10
159 # Pri1 ReadyToRun (CI)
160 - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')) }}:
161 - template: eng/platform-matrix.yml
163 jobTemplate: test-job.yml
169 asString: 'normal,no_tiered_compilation'
172 - no_tiered_compilation
173 timeoutInMinutes: 360
174 timeoutPerTestInMinutes: 30
176 # Pri1 (Schedule, Manual)
177 - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule', 'Manual')) }}:
178 - template: eng/platform-matrix.yml
180 jobTemplate: test-job.yml
185 asString: 'normal,no_tiered_compilation,jitstress1,jitstress2,jitstress1_tiered,jitstress2_tiered,jitstressregs1,jitstressregs2,jitstressregs3,jitstressregs4,jitstressregs8,jitstressregs0x10,jitstressregs0x80,jitstressregs0x1000,jitminopts'
188 - no_tiered_compilation
200 - jitstressregs0x1000
202 timeoutInMinutes: 480
203 timeoutPerTestInMinutes: 30
207 # Release test builds
210 # Pri1 (Official Build)
211 - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
212 - template: eng/platform-matrix.yml
214 jobTemplate: test-job.yml
219 asString: 'normal,no_tiered_compilation'
222 - no_tiered_compilation
223 timeoutInMinutes: 360
224 timeoutPerTestInMinutes: 10
226 # Pri1 ReadyToRun (Official Build)
227 - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
228 - template: eng/platform-matrix.yml
230 jobTemplate: test-job.yml
236 asString: 'normal,no_tiered_compilation'
239 - no_tiered_compilation
240 timeoutInMinutes: 360
241 timeoutPerTestInMinutes: 30
244 # Publish build information to Build Assets Registry
246 # This job gathers build assets from the pipeline (from each official
247 # product build job), and publishes them to the build assets
248 # registry. Its dependencies should be updated to include all of the
249 # official builds if we add more platform/arch combinations.
251 - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
252 - template: /eng/common/templates/job/publish-build-assets.yml
254 configuration: Release
256 name: dotnet-internal-temp
258 - build_Linux_arm_release
259 - build_Linux_arm64_release
260 - build_Linux_musl_x64_release
261 - build_Linux_rhel6_x64_release
262 - build_Linux_x64_release
263 - build_FreeBSD_x64_release
264 - build_OSX_x64_release
265 - build_Windows_NT_x64_release
266 - build_Windows_NT_x86_release
267 - build_Windows_NT_arm_release
268 - build_Windows_NT_arm64_release