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