2 # Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
10 - group: prod-credentials
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
44 # IMAGE: dist-various-1
48 # IMAGE: dist-various-2
52 # IMAGE: dist-aarch64-linux
60 # IMAGE: dist-arm-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
91 # dist-mips64el-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
115 # dist-x86_64-freebsd:
116 # IMAGE: dist-x86_64-freebsd
120 # IMAGE: dist-x86_64-musl
123 # dist-x86_64-netbsd:
124 # IMAGE: dist-x86_64-netbsd
132 # IMAGE: i686-gnu-nopt
134 # IMAGE: test-various
137 # x86_64-gnu-full-bootstrap:
138 # IMAGE: x86_64-gnu-full-bootstrap
140 # IMAGE: x86_64-gnu-aux
142 # IMAGE: x86_64-gnu-tools
143 # # FIXME if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
145 # IMAGE: x86_64-gnu-debug
147 # IMAGE: x86_64-gnu-nopt
148 # x86_64-gnu-distcheck:
149 # IMAGE: x86_64-gnu-distcheck
154 timeoutInMinutes: 180
160 - template: steps/macos.yml
163 # macOS builders. These are placed near the beginning because they are very
166 # OSX builders running tests, these run the full test suite.
167 # NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
168 # runners that run `//ignore-debug` tests.
170 # Note that the compiler is compiled to target 10.8 here because the Xcode
171 # version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
173 RUST_CHECK_TARGET: check
174 RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
175 RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
176 MACOSX_DEPLOYMENT_TARGET: 10.8
177 MACOSX_STD_DEPLOYMENT_TARGET: 10.7
178 NO_LLVM_ASSERTIONS: 1
179 NO_DEBUG_ASSERTIONS: 1
182 RUST_CHECK_TARGET: dist
183 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
185 RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
186 MACOSX_DEPLOYMENT_TARGET: 10.7
187 NO_LLVM_ASSERTIONS: 1
188 NO_DEBUG_ASSERTIONS: 1
189 DIST_REQUIRE_ALL_TOOLS: 1
191 # dist-x86_64-apple-alt:
192 # RUST_CHECK_TARGET: dist
193 # RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
195 # RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
196 # MACOSX_DEPLOYMENT_TARGET: 10.7
197 # NO_LLVM_ASSERTIONS: 1
198 # NO_DEBUG_ASSERTIONS: 1
201 # RUST_CHECK_TARGET: check
202 # RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
203 # RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
204 # MACOSX_DEPLOYMENT_TARGET: 10.8
205 # MACOSX_STD_DEPLOYMENT_TARGET: 10.7
206 # NO_LLVM_ASSERTIONS: 1
207 # NO_DEBUG_ASSERTIONS: 1
210 # RUST_CHECK_TARGET: dist
211 # RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
213 # RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
214 # MACOSX_DEPLOYMENT_TARGET: 10.7
215 # NO_LLVM_ASSERTIONS: 1
216 # NO_DEBUG_ASSERTIONS: 1
217 # DIST_REQUIRE_ALL_TOOLS: 1
222 timeoutInMinutes: 180
224 vmImage: 'vs2017-win2016'
226 - template: steps/windows.yml
229 # # 32/64 bit MSVC tests
232 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
233 # SCRIPT: make ci-subset-1
235 # NO_DEBUG_ASSERTIONS: 1
236 # NO_LLVM_ASSERTIONS: 1
239 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
240 # SCRIPT: make ci-subset-2
243 # RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
244 # SCRIPT: make ci-subset-1
247 # RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
248 # SCRIPT: make ci-subset-2
252 # RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
253 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
256 # SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
257 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
258 # VCVARS_BAT: vcvars64.bat
262 # SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows
263 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri
265 # # 32/64-bit MinGW builds.
267 # # We are using MinGW with posix threads since LLVM does not compile with
268 # # the win32 threads version due to missing support for C++'s std::thread.
270 # # Instead of relying on the MinGW version installed on appveryor we download
271 # # and install one ourselves so we won't be surprised by changes to appveyor's
274 # # Finally, note that the downloads below are all in the `rust-lang-ci` S3
275 # # bucket, but they cleraly didn't originate there! The downloads originally
276 # # came from the mingw-w64 SourceForge download site. Unfortunately
277 # # SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
280 # RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
281 # SCRIPT: make ci-subset-1
282 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
283 # MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
286 # NO_DEBUG_ASSERTIONS: 1
287 # NO_LLVM_ASSERTIONS: 1
290 # RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
291 # SCRIPT: make ci-subset-2
292 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
293 # MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
297 # SCRIPT: make ci-subset-1
298 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
299 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
300 # MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
303 # NO_DEBUG_ASSERTIONS: 1
304 # NO_LLVM_ASSERTIONS: 1
307 # SCRIPT: make ci-subset-2
308 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
309 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
310 # MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
313 # 32/64 bit MSVC and GNU deployment
315 RUST_CONFIGURE_ARGS: >
316 --build=x86_64-pc-windows-msvc
317 --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
320 SCRIPT: python x.py dist
321 DIST_REQUIRE_ALL_TOOLS: 1
324 # RUST_CONFIGURE_ARGS: >
325 # --build=i686-pc-windows-msvc
326 # --target=i586-pc-windows-msvc
327 # --enable-full-tools
329 # SCRIPT: python x.py dist
330 # DIST_REQUIRE_ALL_TOOLS: 1
334 # RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
335 # SCRIPT: python x.py dist
336 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
337 # MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
339 # DIST_REQUIRE_ALL_TOOLS: 1
343 # SCRIPT: python x.py dist
344 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
345 # MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
346 # MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
348 # DIST_REQUIRE_ALL_TOOLS: 1
351 # # "alternate" deployment, see .travis.yml for more info
352 # dist-x86_64-msvc-alt:
354 # RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
355 # SCRIPT: python x.py dist