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