]> git.lizzy.rs Git - rust.git/blob - .azure-pipelines/auto.yml
Refactor azure pipelines configuration
[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: 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