-
Notifications
You must be signed in to change notification settings - Fork 4.9k
/
Copy pathperf-build.yml
238 lines (232 loc) · 8.84 KB
/
perf-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
parameters:
- name: runPrivateJobs
displayName: Upload artifacts to blob storage
type: boolean
default: false
- name: storeAsLatest
displayName: Mark the build as latest for the branch
type: boolean
default: false
- name: mauiFramework
type: string
default: 'net9.0'
- name: coreclr_arm64_linux
displayName: Build Coreclr Arm64 Linux
type: boolean
default: true
- name: coreclr_arm64_windows
displayName: Build Coreclr Arm64 Windows
type: boolean
default: true
- name: coreclr_muslx64_linux
displayName: Build Coreclr Musl x64 Linux
type: boolean
default: true
- name: coreclr_x64_linux
displayName: Build Coreclr x64 Linux
type: boolean
default: true
- name: coreclr_x64_windows
displayName: Build Coreclr x64 Windows
type: boolean
default: true
- name: coreclr_x86_windows
displayName: Build Coreclr x86 Windows
type: boolean
default: true
- name: coreclr_arm64_android
displayName: Build Coreclr Arm64 Android
type: boolean
default: true
- name: wasm
displayName: Build WebAssembly (wasm)
type: boolean
default: true
- name: monoAot_arm64_linux
displayName: Build Mono AOT Arm64 Linux
type: boolean
default: true
- name: monoAot_x64_linux
displayName: Build Mono AOT x64 Linux
type: boolean
default: true
- name: mono_x64_linux
displayName: Build Mono x64 Linux
type: boolean
default: true
- name: mono_arm64_linux
displayName: Build Mono Arm64 Linux
type: boolean
default: true
- name: mono_arm64_android
displayName: Build Mono Arm64 Android
type: boolean
default: true
- name: mono_arm64_ios
displayName: Build Mono Arm64 iOS
type: boolean
default: true
- name: monoBDN_arm64_android
displayName: Build Mono Arm64 Android BDN (Not working)
type: boolean
default: false # currently not working
- name: nativeAot_arm64_ios
displayName: Build native AOT Arm64 iOS
type: boolean
default: true
trigger:
batch: false # we want to build every single commit
branches:
include:
- main
- release/9.0
- release/8.0
paths:
include:
- '*'
# do not exclude any paths, as we want to build every single commit
resources:
repositories:
- repository: performance
type: git
name: internal/dotnet-performance
# if you need to specify explicit branch use 'ref:' - for example ref: ekharion/store-latest-build
variables:
- template: /eng/pipelines/common/variables.yml
extends:
template: /eng/pipelines/common/templates/pipeline-with-resources.yml
parameters:
stages:
- ${{ if and(ne(variables['System.TeamProject'], 'public'), or(eq(variables['Build.Reason'], 'IndividualCI'), parameters.runPrivateJobs)) }}:
- stage: RegisterBuild
displayName: 'Register Build'
jobs:
- template: /eng/pipelines/register-build-jobs.yml@performance
parameters:
runtimeRepoAlias: self
performanceRepoAlias: performance
buildType:
- ${{ if eq(parameters.coreclr_arm64_linux, true) }}:
- coreclr_arm64_linux
- ${{ if eq(parameters.coreclr_arm64_windows, true) }}:
- coreclr_arm64_windows
- ${{ if eq(parameters.coreclr_muslx64_linux, true) }}:
- coreclr_muslx64_linux
- ${{ if eq(parameters.coreclr_x64_linux, true) }}:
- coreclr_x64_linux
- ${{ if eq(parameters.coreclr_x64_windows, true) }}:
- coreclr_x64_windows
- ${{ if eq(parameters.coreclr_x86_windows, true) }}:
- coreclr_x86_windows
- ${{ if eq(parameters.coreclr_arm64_android, true) }}:
- coreclr_arm64_android
- ${{ if eq(parameters.wasm, true) }}:
- wasm
- ${{ if eq(parameters.monoAot_arm64_linux, true) }}:
- monoAot_arm64_linux
- ${{ if eq(parameters.monoAot_x64_linux, true) }}:
- monoAot_x64_linux
- ${{ if eq(parameters.mono_x64_linux, true) }}:
- mono_x64_linux
- ${{ if eq(parameters.mono_arm64_linux, true) }}:
- mono_arm64_linux
- ${{ if eq(parameters.mono_arm64_android, true) }}:
- mono_arm64_android
- ${{ if eq(parameters.mono_arm64_ios, true) }}:
- mono_arm64_ios
- ${{ if eq(parameters.monoBDN_arm64_android, true) }}:
- monoBDN_arm64_android
- ${{ if eq(parameters.nativeAot_arm64_ios, true) }}:
- nativeAot_arm64_ios
- stage: Build
displayName: 'Build'
dependsOn: [] # so it runs in parallel with the RegisterBuild stage
jobs:
- template: /eng/pipelines/runtime-perf-build-jobs.yml@performance
parameters:
runtimeRepoAlias: self
performanceRepoAlias: performance
buildType:
- ${{ if eq(parameters.coreclr_arm64_linux, true) }}:
- coreclr_arm64_linux
- ${{ if eq(parameters.coreclr_arm64_windows, true) }}:
- coreclr_arm64_windows
- ${{ if eq(parameters.coreclr_muslx64_linux, true) }}:
- coreclr_muslx64_linux
- ${{ if eq(parameters.coreclr_x64_linux, true) }}:
- coreclr_x64_linux
- ${{ if eq(parameters.coreclr_x64_windows, true) }}:
- coreclr_x64_windows
- ${{ if eq(parameters.coreclr_x86_windows, true) }}:
- coreclr_x86_windows
- ${{ if eq(parameters.coreclr_arm64_android, true) }}:
- coreclr_arm64_android
- ${{ if eq(parameters.wasm, true) }}:
- wasm
- ${{ if eq(parameters.monoAot_arm64_linux, true) }}:
- monoAot_arm64_linux
- ${{ if eq(parameters.monoAot_x64_linux, true) }}:
- monoAot_x64_linux
- ${{ if eq(parameters.mono_x64_linux, true) }}:
- mono_x64_linux
- ${{ if eq(parameters.mono_arm64_linux, true) }}:
- mono_arm64_linux
- ${{ if eq(parameters.mono_arm64_android, true) }}:
- mono_arm64_android
- ${{ if eq(parameters.mono_arm64_ios, true) }}:
- mono_arm64_ios
- ${{ if eq(parameters.monoBDN_arm64_android, true) }}:
- monoBDN_arm64_android
- ${{ if eq(parameters.nativeAot_arm64_ios, true) }}:
- nativeAot_arm64_ios
${{ if parameters.mauiFramework }}:
mauiFramework: ${{ parameters.mauiFramework }}
- ${{ if and(ne(variables['System.TeamProject'], 'public'), or(eq(variables['Build.Reason'], 'IndividualCI'), parameters.runPrivateJobs)) }}:
- stage: UploadArtifacts
displayName: 'Upload Artifacts'
condition: always()
dependsOn:
- Build
- RegisterBuild
jobs:
- template: /eng/pipelines/upload-build-artifacts-jobs.yml@performance
parameters:
runtimeRepoAlias: self
performanceRepoAlias: performance
buildType:
- ${{ if eq(parameters.coreclr_arm64_linux, true) }}:
- coreclr_arm64_linux
- ${{ if eq(parameters.coreclr_arm64_windows, true) }}:
- coreclr_arm64_windows
- ${{ if eq(parameters.coreclr_muslx64_linux, true) }}:
- coreclr_muslx64_linux
- ${{ if eq(parameters.coreclr_x64_linux, true) }}:
- coreclr_x64_linux
- ${{ if eq(parameters.coreclr_x64_windows, true) }}:
- coreclr_x64_windows
- ${{ if eq(parameters.coreclr_x86_windows, true) }}:
- coreclr_x86_windows
- ${{ if eq(parameters.coreclr_arm64_android, true) }}:
- coreclr_arm64_android
- ${{ if eq(parameters.wasm, true) }}:
- wasm
- ${{ if eq(parameters.monoAot_arm64_linux, true) }}:
- monoAot_arm64_linux
- ${{ if eq(parameters.monoAot_x64_linux, true) }}:
- monoAot_x64_linux
- ${{ if eq(parameters.mono_x64_linux, true) }}:
- mono_x64_linux
- ${{ if eq(parameters.mono_arm64_linux, true) }}:
- mono_arm64_linux
- ${{ if eq(parameters.mono_arm64_android, true) }}:
- mono_arm64_android
- ${{ if eq(parameters.mono_arm64_ios, true) }}:
- mono_arm64_ios
- ${{ if eq(parameters.monoBDN_arm64_android, true) }}:
- monoBDN_arm64_android
- ${{ if eq(parameters.nativeAot_arm64_ios, true) }}:
- nativeAot_arm64_ios
- ${{ if eq(parameters.storeAsLatest, true) }}:
- template: /eng/pipelines/upload-latest-build.yml@performance
parameters:
branchName: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', '') }}