c50517ae85
As the infra team we decided to have an hard timeout of 3 hours on all the jobs: while this sometimes causes spurious timeout errors it's a great limit to prevent CI time to grow even more.
132 lines
4.2 KiB
YAML
132 lines
4.2 KiB
YAML
#
|
|
# 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
|