2 # Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
10 - group: prod-credentials
17 - template: steps/run.yml
21 IMAGE: x86_64-gnu-llvm-6.0
25 IMAGE: dist-x86_64-linux
28 # "alternate" deployments, these are "nightlies" but have LLVM assertions
29 # turned on, they're deployed to a different location primarily for
31 dist-x86_64-linux-alt:
32 IMAGE: dist-x86_64-linux
35 # Linux builders, remaining docker images
51 IMAGE: dist-aarch64-linux
63 IMAGE: dist-armhf-linux
67 IMAGE: dist-armv7-linux
70 dist-i586-gnu-i586-i686-musl:
71 IMAGE: dist-i586-gnu-i586-i686-musl
75 IMAGE: dist-i686-freebsd
79 IMAGE: dist-i686-linux
83 IMAGE: dist-mips-linux
87 IMAGE: dist-mips64-linux
91 IMAGE: dist-mips64el-linux
95 IMAGE: dist-mipsel-linux
99 IMAGE: dist-powerpc-linux
102 dist-powerpc64-linux:
103 IMAGE: dist-powerpc64-linux
106 dist-powerpc64le-linux:
107 IMAGE: dist-powerpc64le-linux
111 IMAGE: dist-s390x-linux
115 IMAGE: dist-x86_64-freebsd
119 IMAGE: dist-x86_64-musl
123 IMAGE: dist-x86_64-netbsd
136 x86_64-gnu-full-bootstrap:
137 IMAGE: x86_64-gnu-full-bootstrap
139 IMAGE: x86_64-gnu-aux
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)/)
144 IMAGE: x86_64-gnu-debug
146 IMAGE: x86_64-gnu-nopt
147 x86_64-gnu-distcheck:
148 IMAGE: x86_64-gnu-distcheck
158 - template: steps/run.yml
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.
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.
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
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
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
186 dist-x86_64-apple-alt:
187 RUST_CHECK_TARGET: dist
188 RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
190 RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
191 MACOSX_DEPLOYMENT_TARGET: 10.7
192 NO_LLVM_ASSERTIONS: 1
193 NO_DEBUG_ASSERTIONS: 1
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
205 RUST_CHECK_TARGET: dist
206 RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
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
218 vmImage: 'vs2017-win2016'
220 - template: steps/run.yml
223 # 32/64 bit MSVC tests
226 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
227 SCRIPT: make ci-subset-1
229 NO_DEBUG_ASSERTIONS: 1
230 NO_LLVM_ASSERTIONS: 1
233 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
234 SCRIPT: make ci-subset-2
237 RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
238 SCRIPT: make ci-subset-1
241 RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
242 SCRIPT: make ci-subset-2
246 RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
247 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
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
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
259 # 32/64-bit MinGW builds.
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.
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
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.
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
280 NO_DEBUG_ASSERTIONS: 1
281 NO_LLVM_ASSERTIONS: 1
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
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
297 NO_DEBUG_ASSERTIONS: 1
298 NO_LLVM_ASSERTIONS: 1
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
307 # 32/64 bit MSVC and GNU deployment
309 RUST_CONFIGURE_ARGS: >
310 --build=x86_64-pc-windows-msvc
311 --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
314 SCRIPT: python x.py dist
315 DIST_REQUIRE_ALL_TOOLS: 1
318 RUST_CONFIGURE_ARGS: >
319 --build=i686-pc-windows-msvc
320 --target=i586-pc-windows-msvc
323 SCRIPT: python x.py dist
324 DIST_REQUIRE_ALL_TOOLS: 1
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
333 DIST_REQUIRE_ALL_TOOLS: 1
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
342 DIST_REQUIRE_ALL_TOOLS: 1
345 # "alternate" deployment, see .travis.yml for more info
346 dist-x86_64-msvc-alt:
348 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
349 SCRIPT: python x.py dist