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