Queue ValueTaskAwaiter IAsyncStateMachineBox directly to ThreadPool (#21159)
[platform/upstream/coreclr.git] / azure-pipelines.yml
1 variables:
2   DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
3
4
5 jobs:
6
7 ##   The following is the matrix of test runs that we have. This is
8 ##   duplicated for each os/arch combination in platform-matrix.yml.
9
10 ##
11 ##   Product build       Test build              Test run
12 ##   (Azure DevOps)      (Azure DevOps)          (helix)
13 ##
14 ##   ###########################################################################################
15 ##
16 ##   Debug
17 ##
18 ##   Checked ----------> Pri0 -----------------> plain runtests
19 ##           |
20 ##           \---------> Pri1 -----------------> plain runtests
21 ##           |                \----------------> jitstress
22 ##           |                \----------------> gcstress
23 ##           |                \----------------> maybe more (dynamically selected runtest modes)
24 ##           |
25 ##           \---------> Pri1 crossgen --------> plain runtests
26 ##                                     \-------> jitstress
27 ##                                     \-------> gcstress
28 ##                                     \-------> maybe more (dynamically selected runtest modes)
29 ##
30 ##   Release ----------> Pri1 -----------------> plain runtests
31 ##           |
32 ##           \---------> Pri1 crossgen --------> plain runtests
33 ##
34 ##
35
36 ## Each build or test job is defined in Azure DevOps, and will show
37 ## up in the UI in the order in which they are defined here. The
38 ## build and test build job matrix is defined statically, but
39 ## queue-time inputs can be used to control whether a job executes
40 ## (used to select which jobs run in ci vs for official builds), or
41 ## to select test modes. This should eventually be used to enable
42 ## requesting specific test runs from pull requests.
43
44
45 ##
46 ## Templates used to define jobs:
47 ## Please update this if the factoring changes.
48 ##
49 ## This file defines the set of jobs in a platform-agnostic manner,
50 ## using the platform-matrix.yml template. This will create one job
51 ## for each platform from the passed-in jobTemplate (either a build
52 ## job or a test job). The build-job.yml and test-job.yml templates
53 ## use xplat-job.yml to handle some of the common logic for
54 ## abstracting over platforms. Finally, xplat-job.yml uses the arcade
55 ## base.yml job template, which sets up telemetry and signing support.
56
57 ## azure-pipelines.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> base.yml
58 ##                                            |  (passed-in jobTemplate)  |                    (arcade)
59 ##                                            \------> test-job.yml ------/
60
61
62
63 #
64 # Debug build
65 #
66
67 - template: eng/platform-matrix.yml
68   parameters:
69     jobTemplate: build-job.yml
70     buildConfig: debug
71
72 #
73 # Checked build
74 #
75
76 - template: eng/platform-matrix.yml
77   parameters:
78     jobTemplate: build-job.yml
79     buildConfig: checked
80
81 #
82 # Release build
83 #
84
85 - template: eng/platform-matrix.yml
86   parameters:
87     jobTemplate: build-job.yml
88     buildConfig: release
89
90 #
91 # Checked test builds
92 #
93
94 # Pri0
95 - template: eng/platform-matrix.yml
96   parameters:
97     jobTemplate: test-job.yml
98     buildConfig: checked
99     jobParameters:
100       priority: 0
101
102 # Pri1
103 - template: eng/platform-matrix.yml
104   parameters:
105     jobTemplate: test-job.yml
106     buildConfig: checked
107     jobParameters:
108       priority: 1
109       scenarios: 'normal;jitstress2'
110
111 # Pri1 crossgen
112 - template: eng/platform-matrix.yml
113   parameters:
114     jobTemplate: test-job.yml
115     buildConfig: checked
116     jobParameters:
117       priority: 1
118       crossgen: true
119       scenarios: 'normal;jitstress2'
120
121 #
122 # Release test builds
123 #
124
125 # Pri1
126 - template: eng/platform-matrix.yml
127   parameters:
128     jobTemplate: test-job.yml
129     buildConfig: release
130     jobParameters:
131       priority: 1
132
133 # Pri1 crossgen
134 - template: eng/platform-matrix.yml
135   parameters:
136     jobTemplate: test-job.yml
137     buildConfig: release
138     jobParameters:
139       priority: 1
140       crossgen: true
141
142
143 # Publish build information to Build Assets Registry
144
145 # This job gathers build assets from the pipeline (from each official
146 # product build job), and publishes them to the build assets
147 # registry. Its dependencies should be updated to include all of the
148 # official builds if we add more platform/arch combinations.
149
150 # TODO: Enable publish to BAR
151 #- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
152 #  - template: /eng/common/templates/phases/publish-build-assets.yml@arcade
153 #- phase: publish_bar
154 #  displayName: publish to BAR (empty currently)
155 #  queue:
156 #    name: Hosted VS2017
157 #  dependsOn:
158 #  - build_Linux_x64_release
159 #  - build_OSX_x64_release
160 #  - build_Windows_NT_x64_release
161 #  - build_Windows_NT_x86_release
162 #  - build_Windows_NT_arm_release
163 #  - build_Windows_NT_arm64_release
164   # TODO: enable these builds
165   #  - build_rhel_x64_release
166   #  - build_alpine_x64_release
167   #  - build_crossbuild_arm_release
168   #  - build_crossbuild_arm64_release
169