# # Azure Pipelines test build for Rust on Linux, macOS, and Windows. # pr: none trigger: none variables: - group: caching jobs: - job: Linux timeoutInMinutes: 180 pool: vmImage: ubuntu-16.04 steps: - template: steps/linux.yml strategy: matrix: x86_64-gnu-llvm-6.0: RUST_BACKTRACE: 1 dist-x86_64-linux: DEPLOY: 1 # "alternate" deployments, these are "nightlies" but have LLVM assertions # turned on, they're deployed to a different location primarily for # additional testing. dist-x86_64-linux-alt: IMAGE: dist-x86_64-linux DEPLOY_ALT: 1 dist-various-1: DEPLOY: 1 dist-android: DEPLOY: 1 dist-x86_64-freebsd: DEPLOY: 1 i686-gnu-nopt: {} test-various: {} x86_64-gnu-tools: {} # FIXME if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/) x86_64-gnu-nopt: {} x86_64-gnu-distcheck: {} mingw-check: {} - job: macOS timeoutInMinutes: 180 pool: vmImage: macos-10.13 steps: - template: steps/macos.yml strategy: matrix: dist-x86_64-apple-alt: RUST_CHECK_TARGET: dist RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc DEPLOY_ALT: 1 RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 MACOSX_DEPLOYMENT_TARGET: 10.7 NO_LLVM_ASSERTIONS: 1 NO_DEBUG_ASSERTIONS: 1 # macOS builders. These are placed near the beginning because they are very # slow to run. # OSX builders running tests, these run the full test suite. # NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some # runners that run `//ignore-debug` tests. # # Note that the compiler is compiled to target 10.8 here because the Xcode # version that we're using, 8.2, cannot compile LLVM for OSX 10.7. x86_64-apple: RUST_CHECK_TARGET: check RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 MACOSX_DEPLOYMENT_TARGET: 10.8 MACOSX_STD_DEPLOYMENT_TARGET: 10.7 NO_LLVM_ASSERTIONS: 1 NO_DEBUG_ASSERTIONS: 1 - job: Windows timeoutInMinutes: 180 pool: vmImage: 'vs2017-win2016' steps: - template: steps/windows.yml strategy: matrix: x86_64-msvc-tools: MSYS_BITS: 64 SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri # 32/64-bit MinGW builds. # # We are using MinGW with posix threads since LLVM does not compile with # the win32 threads version due to missing support for C++'s std::thread. # # Instead of relying on the MinGW version installed on appveryor we download # and install one ourselves so we won't be surprised by changes to appveyor's # build image. # # Finally, note that the downloads below are all in the `rust-lang-ci` S3 # bucket, but they cleraly didn't originate there! The downloads originally # came from the mingw-w64 SourceForge download site. Unfortunately # SourceForge is notoriously flaky, so we mirror it on our own infrastructure. i686-mingw-1: MSYS_BITS: 32 RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu SCRIPT: make ci-subset-1 MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z MINGW_DIR: mingw32 x86_64-mingw: MSYS_BITS: 64 SCRIPT: python x.py test RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z MINGW_DIR: mingw64 # "alternate" deployment, see .travis.yml for more info dist-x86_64-msvc-alt: MSYS_BITS: 64 RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler SCRIPT: python x.py dist DEPLOY_ALT: 1