forked from dotnet/core-setup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
242 lines (217 loc) · 7.79 KB
/
azure-pipelines.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
239
240
241
242
trigger:
batch: true
branches:
include:
- master
- release/3.*
paths:
exclude:
- Documentation/*
- README.md
- CONTRIBUTING.md
- LICENSE.TXT
- THIRD-PARTY-NOTICES.TXT
pr:
branches:
include:
- master
- release/3.*
paths:
exclude:
- Documentation/*
- README.md
- CONTRIBUTING.md
- LICENSE.TXT
- THIRD-PARTY-NOTICES.TXT
name: $(Date:yyyyMMdd)$(Rev:.r)
variables:
- name: TeamName
value: dotnet-core-acquisition
# Skip Running CI tests
- name: SkipTests
value: false
# Set Official Build Id
- name: OfficialBuildId
value: $(Build.BuildNumber)
# Set the target blob feed for package publish during official and validation builds.
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation
# Produce test-signed build for PR and Public builds
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: test
# Set up non-PR build from internal project
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64
# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: /eng/pipelines/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190923200213
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine39
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
portableBuild: false
targetArchitecture: x64
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-50f0d02-20190918214028
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64
- template: /eng/pipelines/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=rhel.6-x64
name: Linux_x64_Rhel6
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-50f0d02-20190918213956
portableBuild: false
targetArchitecture: x64
# -------- Build OSX (macOS) leg --------
- template: /eng/pipelines/jobs/osx-build.yml
parameters:
name: OSX
# -------- Build Windows legs --------
# Windows Arm
- template: /eng/pipelines/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm
# Windows Arm64
- template: /eng/pipelines/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64
# Windows x64
- template: /eng/pipelines/jobs/windows-build.yml
parameters:
name: Windows_x64
publishRidAgnosticPackages: true
targetArchitecture: x64
# Windows x86
- template: /eng/pipelines/jobs/windows-build.yml
parameters:
name: Windows_x86
targetArchitecture: x86
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: PrepareForPublish
displayName: Prepare for Publish
dependsOn: Build
jobs:
# Prep artifacts: sign them and upload pipeline artifacts expected by stages-based publishing.
- template: /eng/pipelines/jobs/prepare-signed-artifacts.yml
parameters:
PublishRidAgnosticPackagesFromJobName: Windows_x64
# Publish to Build Asset Registry in order to generate the ReleaseConfigs artifact.
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017
- template: /eng/pipelines/stages/publish.yml
parameters:
# Publish channel configuration. The publish template wraps Arcade publishing and adds some
# extras that aren't implemented in Arcade yet.
#
# - dependsOn: <ID of the Arcade stage that finalization should run after>
# channel:
# name: <Name of this channel, for logging and readability>
# bar: <Name of the Arcade variable that contains the ID of this channel in BAR>
# storage: <Name of the Latest channel to publish to in dotnetcli blob storage>
dependsOnPublishStages:
- dependsOn: NetCore_Release30_Publish
channel:
name: .NET Core 3 Release
bar: PublicRelease_30_Channel_Id
storage: release/3.0-preview9
public: true
- dependsOn: NetCore_30_Internal_Servicing_Publishing
channel:
name: .NET Core 3 Internal Servicing
bar: InternalServicing_30_Channel_Id
storage: internal/release/3.0
public: false
- dependsOn: NetCore_Dev31_Publish
channel:
name: .NET Core 3.1 Dev
bar: PublicDevRelease_31_Channel_Id
storage: release/3.1
public: true
- dependsOn: NetCore_Release31_Publish
channel:
name: .NET Core 3.1 Release
bar: PublicRelease_31_Channel_Id
storage: release/3.1-preview1
public: true
- dependsOn: NetCore_Dev5_Publish
channel:
name: .NET Core 5 Dev
bar: NetCore_5_Dev_Channel_Id
storage: master
public: true
- dependsOn: PVR_Publish
channel:
name: .NET Tools - Validation
bar: PublicValidationRelease_30_Channel_Id
storage: dev/validation
public: true