2 # Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
18 - template: steps/linux.yml
22 IMAGE: x86_64-gnu-llvm-6.0
26 IMAGE: dist-x86_64-linux
29 # "alternate" deployments, these are "nightlies" but have LLVM assertions
30 # turned on, they're deployed to a different location primarily for
32 dist-x86_64-linux-alt:
33 IMAGE: dist-x86_64-linux
36 # Linux builders, remaining docker images
52 IMAGE: dist-aarch64-linux
64 IMAGE: dist-armhf-linux
68 IMAGE: dist-armv7-linux
71 dist-i586-gnu-i586-i686-musl:
72 IMAGE: dist-i586-gnu-i586-i686-musl
76 IMAGE: dist-i686-freebsd
80 IMAGE: dist-i686-linux
84 IMAGE: dist-mips-linux
88 IMAGE: dist-mips64-linux
92 IMAGE: dist-mips64el-linux
96 IMAGE: dist-mipsel-linux
100 IMAGE: dist-powerpc-linux
103 dist-powerpc64-linux:
104 IMAGE: dist-powerpc64-linux
107 dist-powerpc64le-linux:
108 IMAGE: dist-powerpc64le-linux
112 IMAGE: dist-s390x-linux
116 IMAGE: dist-x86_64-freebsd
120 IMAGE: dist-x86_64-musl
124 IMAGE: dist-x86_64-netbsd
139 x86_64-gnu-full-bootstrap:
140 IMAGE: x86_64-gnu-full-bootstrap
142 IMAGE: x86_64-gnu-aux
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)/)
147 IMAGE: x86_64-gnu-debug
149 IMAGE: x86_64-gnu-nopt
150 x86_64-gnu-distcheck:
151 IMAGE: x86_64-gnu-distcheck
156 timeoutInMinutes: 180
162 - template: steps/macos.yml
165 # macOS builders. These are placed near the beginning because they are very
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.
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.
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
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
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
193 dist-x86_64-apple-alt:
194 RUST_CHECK_TARGET: dist
195 RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
197 RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
198 MACOSX_DEPLOYMENT_TARGET: 10.7
199 NO_LLVM_ASSERTIONS: 1
200 NO_DEBUG_ASSERTIONS: 1
203 # # https://github.com/johnterickson/rust/issues/18
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
214 # RUST_CHECK_TARGET: dist
215 # RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
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
226 timeoutInMinutes: 180
228 vmImage: 'vs2017-win2016'
230 - template: steps/windows.yml
233 # 32/64 bit MSVC tests
236 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
237 SCRIPT: make ci-subset-1
239 NO_DEBUG_ASSERTIONS: 1
240 NO_LLVM_ASSERTIONS: 1
243 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
244 SCRIPT: make ci-subset-2
247 RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
248 SCRIPT: make ci-subset-1
251 RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
252 SCRIPT: make ci-subset-2
256 RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
257 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
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
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
269 # 32/64-bit MinGW builds.
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.
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
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.
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
290 NO_DEBUG_ASSERTIONS: 1
291 NO_LLVM_ASSERTIONS: 1
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
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
307 NO_DEBUG_ASSERTIONS: 1
308 NO_LLVM_ASSERTIONS: 1
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
317 # 32/64 bit MSVC and GNU deployment
319 RUST_CONFIGURE_ARGS: >
320 --build=x86_64-pc-windows-msvc
321 --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
324 SCRIPT: python x.py dist
325 DIST_REQUIRE_ALL_TOOLS: 1
328 RUST_CONFIGURE_ARGS: >
329 --build=i686-pc-windows-msvc
330 --target=i586-pc-windows-msvc
333 SCRIPT: python x.py dist
334 DIST_REQUIRE_ALL_TOOLS: 1
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
343 DIST_REQUIRE_ALL_TOOLS: 1
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
352 DIST_REQUIRE_ALL_TOOLS: 1
355 # "alternate" deployment, see .travis.yml for more info
356 dist-x86_64-msvc-alt:
358 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
359 SCRIPT: python x.py dist