Skip to content

Commit dec4c52

Browse files
committed
Auto merge of rust-lang#60777 - pietroalbini:azure-pipelines, r=alexcrichton
Add Azure Pipelines configuration Huge thanks to @johnterickson and @willsmythe for writing the initial config! ❤️ I applied some changes to the initial config and disabled most of the builders since we're not going to run all of them during the initial step for the evaluation. [More details about our plans for the Azure Pipelines evaluation.](https://internals.rust-lang.org/t/update-on-the-ci-investigation/10056) r? @alexcrichton @kennytm cc @rust-lang/infra @ethomson @rylev
2 parents fc45382 + 2244ca3 commit dec4c52

File tree

16 files changed

+817
-22
lines changed

16 files changed

+817
-22
lines changed

.azure-pipelines/auto.yml

+350
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,350 @@
1+
#
2+
# Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
3+
#
4+
5+
pr: none
6+
trigger:
7+
- auto
8+
9+
variables:
10+
- group: prod-credentials
11+
12+
jobs:
13+
- job: Linux
14+
pool:
15+
vmImage: ubuntu-16.04
16+
steps:
17+
- template: steps/run.yml
18+
strategy:
19+
matrix:
20+
x86_64-gnu-llvm-6.0:
21+
IMAGE: x86_64-gnu-llvm-6.0
22+
RUST_BACKTRACE: 1
23+
24+
dist-x86_64-linux:
25+
IMAGE: dist-x86_64-linux
26+
DEPLOY: 1
27+
28+
# "alternate" deployments, these are "nightlies" but have LLVM assertions
29+
# turned on, they're deployed to a different location primarily for
30+
# additional testing.
31+
dist-x86_64-linux-alt:
32+
IMAGE: dist-x86_64-linux
33+
DEPLOY_ALT: 1
34+
35+
# Linux builders, remaining docker images
36+
arm-android:
37+
IMAGE: arm-android
38+
39+
armhf-gnu:
40+
IMAGE: armhf-gnu
41+
42+
dist-various-1:
43+
IMAGE: dist-various-1
44+
DEPLOY: 1
45+
46+
dist-various-2:
47+
IMAGE: dist-various-2
48+
DEPLOY: 1
49+
50+
dist-aarch64-linux:
51+
IMAGE: dist-aarch64-linux
52+
DEPLOY: 1
53+
54+
dist-android:
55+
IMAGE: dist-android
56+
DEPLOY: 1
57+
58+
dist-arm-linux:
59+
IMAGE: dist-arm-linux
60+
DEPLOY: 1
61+
62+
dist-armhf-linux:
63+
IMAGE: dist-armhf-linux
64+
DEPLOY: 1
65+
66+
dist-armv7-linux:
67+
IMAGE: dist-armv7-linux
68+
DEPLOY: 1
69+
70+
dist-i586-gnu-i586-i686-musl:
71+
IMAGE: dist-i586-gnu-i586-i686-musl
72+
DEPLOY: 1
73+
74+
dist-i686-freebsd:
75+
IMAGE: dist-i686-freebsd
76+
DEPLOY: 1
77+
78+
dist-i686-linux:
79+
IMAGE: dist-i686-linux
80+
DEPLOY: 1
81+
82+
dist-mips-linux:
83+
IMAGE: dist-mips-linux
84+
DEPLOY: 1
85+
86+
dist-mips64-linux:
87+
IMAGE: dist-mips64-linux
88+
DEPLOY: 1
89+
90+
dist-mips64el-linux:
91+
IMAGE: dist-mips64el-linux
92+
DEPLOY: 1
93+
94+
dist-mipsel-linux:
95+
IMAGE: dist-mipsel-linux
96+
DEPLOY: 1
97+
98+
dist-powerpc-linux:
99+
IMAGE: dist-powerpc-linux
100+
DEPLOY: 1
101+
102+
dist-powerpc64-linux:
103+
IMAGE: dist-powerpc64-linux
104+
DEPLOY: 1
105+
106+
dist-powerpc64le-linux:
107+
IMAGE: dist-powerpc64le-linux
108+
DEPLOY: 1
109+
110+
dist-s390x-linux:
111+
IMAGE: dist-s390x-linux
112+
DEPLOY: 1
113+
114+
dist-x86_64-freebsd:
115+
IMAGE: dist-x86_64-freebsd
116+
DEPLOY: 1
117+
118+
dist-x86_64-musl:
119+
IMAGE: dist-x86_64-musl
120+
DEPLOY: 1
121+
122+
dist-x86_64-netbsd:
123+
IMAGE: dist-x86_64-netbsd
124+
DEPLOY: 1
125+
126+
asmjs:
127+
IMAGE: asmjs
128+
i686-gnu:
129+
IMAGE: i686-gnu
130+
i686-gnu-nopt:
131+
IMAGE: i686-gnu-nopt
132+
test-various:
133+
IMAGE: test-various
134+
x86_64-gnu:
135+
IMAGE: x86_64-gnu
136+
x86_64-gnu-full-bootstrap:
137+
IMAGE: x86_64-gnu-full-bootstrap
138+
x86_64-gnu-aux:
139+
IMAGE: x86_64-gnu-aux
140+
x86_64-gnu-tools:
141+
IMAGE: x86_64-gnu-tools
142+
# FIXME if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
143+
x86_64-gnu-debug:
144+
IMAGE: x86_64-gnu-debug
145+
x86_64-gnu-nopt:
146+
IMAGE: x86_64-gnu-nopt
147+
x86_64-gnu-distcheck:
148+
IMAGE: x86_64-gnu-distcheck
149+
mingw-check:
150+
IMAGE: mingw-check
151+
152+
- job: macOS
153+
pool:
154+
vmImage: macos-10.13
155+
steps:
156+
- checkout: self
157+
fetchDepth: 2
158+
- template: steps/run.yml
159+
strategy:
160+
matrix:
161+
# OSX builders running tests, these run the full test suite.
162+
# NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
163+
# runners that run `//ignore-debug` tests.
164+
#
165+
# Note that the compiler is compiled to target 10.8 here because the Xcode
166+
# version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
167+
x86_64-apple:
168+
RUST_CHECK_TARGET: check
169+
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
170+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
171+
MACOSX_DEPLOYMENT_TARGET: 10.8
172+
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
173+
NO_LLVM_ASSERTIONS: 1
174+
NO_DEBUG_ASSERTIONS: 1
175+
176+
dist-x86_64-apple:
177+
RUST_CHECK_TARGET: dist
178+
RUST_CONFIGURE_ARGS: --target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-full-tools --enable-sanitizers --enable-profiler --enable-lldb --set rust.jemalloc
179+
DEPLOY: 1
180+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
181+
MACOSX_DEPLOYMENT_TARGET: 10.7
182+
NO_LLVM_ASSERTIONS: 1
183+
NO_DEBUG_ASSERTIONS: 1
184+
DIST_REQUIRE_ALL_TOOLS: 1
185+
186+
dist-x86_64-apple-alt:
187+
RUST_CHECK_TARGET: dist
188+
RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
189+
DEPLOY_ALT: 1
190+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
191+
MACOSX_DEPLOYMENT_TARGET: 10.7
192+
NO_LLVM_ASSERTIONS: 1
193+
NO_DEBUG_ASSERTIONS: 1
194+
195+
i686-apple:
196+
RUST_CHECK_TARGET: check
197+
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
198+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
199+
MACOSX_DEPLOYMENT_TARGET: 10.8
200+
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
201+
NO_LLVM_ASSERTIONS: 1
202+
NO_DEBUG_ASSERTIONS: 1
203+
204+
dist-i686-apple:
205+
RUST_CHECK_TARGET: dist
206+
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
207+
DEPLOY: 1
208+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
209+
MACOSX_DEPLOYMENT_TARGET: 10.7
210+
NO_LLVM_ASSERTIONS: 1
211+
NO_DEBUG_ASSERTIONS: 1
212+
DIST_REQUIRE_ALL_TOOLS: 1
213+
214+
215+
216+
- job: Windows
217+
pool:
218+
vmImage: 'vs2017-win2016'
219+
steps:
220+
- template: steps/run.yml
221+
strategy:
222+
matrix:
223+
# 32/64 bit MSVC tests
224+
x86_64-msvc-1:
225+
MSYS_BITS: 64
226+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
227+
SCRIPT: make ci-subset-1
228+
# FIXME(#59637)
229+
NO_DEBUG_ASSERTIONS: 1
230+
NO_LLVM_ASSERTIONS: 1
231+
x86_64-msvc-2:
232+
MSYS_BITS: 64
233+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
234+
SCRIPT: make ci-subset-2
235+
i686-msvc-1:
236+
MSYS_BITS: 32
237+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
238+
SCRIPT: make ci-subset-1
239+
i686-msvc-2:
240+
MSYS_BITS: 32
241+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
242+
SCRIPT: make ci-subset-2
243+
# MSVC aux tests
244+
x86_64-msvc-aux:
245+
MSYS_BITS: 64
246+
RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
247+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
248+
x86_64-msvc-cargo:
249+
MSYS_BITS: 64
250+
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
251+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
252+
VCVARS_BAT: vcvars64.bat
253+
# MSVC tools tests
254+
x86_64-msvc-tools:
255+
MSYS_BITS: 64
256+
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows
257+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri
258+
259+
# 32/64-bit MinGW builds.
260+
#
261+
# We are using MinGW with posix threads since LLVM does not compile with
262+
# the win32 threads version due to missing support for C++'s std::thread.
263+
#
264+
# Instead of relying on the MinGW version installed on appveryor we download
265+
# and install one ourselves so we won't be surprised by changes to appveyor's
266+
# build image.
267+
#
268+
# Finally, note that the downloads below are all in the `rust-lang-ci` S3
269+
# bucket, but they cleraly didn't originate there! The downloads originally
270+
# came from the mingw-w64 SourceForge download site. Unfortunately
271+
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
272+
i686-mingw-1:
273+
MSYS_BITS: 32
274+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
275+
SCRIPT: make ci-subset-1
276+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
277+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
278+
MINGW_DIR: mingw32
279+
# FIXME(#59637)
280+
NO_DEBUG_ASSERTIONS: 1
281+
NO_LLVM_ASSERTIONS: 1
282+
i686-mingw-2:
283+
MSYS_BITS: 32
284+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
285+
SCRIPT: make ci-subset-2
286+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
287+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
288+
MINGW_DIR: mingw32
289+
x86_64-mingw-1:
290+
MSYS_BITS: 64
291+
SCRIPT: make ci-subset-1
292+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
293+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
294+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
295+
MINGW_DIR: mingw64
296+
# FIXME(#59637)
297+
NO_DEBUG_ASSERTIONS: 1
298+
NO_LLVM_ASSERTIONS: 1
299+
x86_64-mingw-2:
300+
MSYS_BITS: 64
301+
SCRIPT: make ci-subset-2
302+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
303+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
304+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
305+
MINGW_DIR: mingw64
306+
307+
# 32/64 bit MSVC and GNU deployment
308+
dist-x86_64-msvc:
309+
RUST_CONFIGURE_ARGS: >
310+
--build=x86_64-pc-windows-msvc
311+
--target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
312+
--enable-full-tools
313+
--enable-profiler
314+
SCRIPT: python x.py dist
315+
DIST_REQUIRE_ALL_TOOLS: 1
316+
DEPLOY: 1
317+
dist-i686-msvc:
318+
RUST_CONFIGURE_ARGS: >
319+
--build=i686-pc-windows-msvc
320+
--target=i586-pc-windows-msvc
321+
--enable-full-tools
322+
--enable-profiler
323+
SCRIPT: python x.py dist
324+
DIST_REQUIRE_ALL_TOOLS: 1
325+
DEPLOY: 1
326+
dist-i686-mingw:
327+
MSYS_BITS: 32
328+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
329+
SCRIPT: python x.py dist
330+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
331+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
332+
MINGW_DIR: mingw32
333+
DIST_REQUIRE_ALL_TOOLS: 1
334+
DEPLOY: 1
335+
dist-x86_64-mingw:
336+
MSYS_BITS: 64
337+
SCRIPT: python x.py dist
338+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
339+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
340+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
341+
MINGW_DIR: mingw64
342+
DIST_REQUIRE_ALL_TOOLS: 1
343+
DEPLOY: 1
344+
345+
# "alternate" deployment, see .travis.yml for more info
346+
dist-x86_64-msvc-alt:
347+
MSYS_BITS: 64
348+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
349+
SCRIPT: python x.py dist
350+
DEPLOY_ALT: 1

.azure-pipelines/master.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# Azure Pipelines job to publish toolstate. Only triggers on pushes to master.
3+
#
4+
5+
pr: none
6+
trigger:
7+
- master
8+
9+
pool:
10+
vmImage: ubuntu-16.04
11+
12+
steps:
13+
- checkout: self
14+
fetchDepth: 2
15+
16+
- script: |
17+
export MESSAGE_FILE=$(mktemp -t msg.XXXXXX)
18+
. src/ci/docker/x86_64-gnu-tools/repo.sh
19+
# FIXME(pietro): committing is disabled until we switch to Azure Pipelines
20+
# as the source of truth, or until we setup a separate test repo.
21+
#commit_toolstate_change "$MESSAGE_FILE" "$BUILD_SOURCESDIRECTORY/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN"
22+
displayName: Publish toolstate
23+
env:
24+
TOOLSTATE_REPO_ACCESS_TOKEN: $(TOOLSTATE_REPO_ACCESS_TOKEN_SECRET)

.azure-pipelines/pr.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Azure Pipelines pull request build for Rust
3+
#
4+
5+
trigger: none
6+
pr:
7+
- master # FIXME: really just want any branch, but want an explicit "pr" property set so it's clear
8+
9+
jobs:
10+
- job: Linux
11+
pool:
12+
vmImage: ubuntu-16.04
13+
steps:
14+
- template: steps/run.yml
15+
strategy:
16+
matrix:
17+
x86_64-gnu-llvm-6.0:
18+
RUST_BACKTRACE: 1
19+
20+
# x86_64-gnu-tools: {}
21+
# # if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
22+
# mingw-check: {}

0 commit comments

Comments
 (0)