Skip to content

Commit 699376a

Browse files
johntericksonpietroalbini
authored andcommitted
Add Azure Pipelines
1 parent 407536e commit 699376a

27 files changed

+1568
-49
lines changed

.azure-pipelines/auto.fanout.yml

Lines changed: 521 additions & 0 deletions
Large diffs are not rendered by default.

.azure-pipelines/auto.yml

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

.azure-pipelines/master.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
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"
20+
displayName: Publish toolstate
21+
env:
22+
TOOLSTATE_REPO_ACCESS_TOKEN: $(TOOLSTATE_REPO_ACCESS_TOKEN_SECRET)

0 commit comments

Comments
 (0)