362 lines
11 KiB
YAML
362 lines
11 KiB
YAML
|
#
|
||
|
# Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
|
||
|
#
|
||
|
# Notes:
|
||
|
# To get sccache working, I (John Erickson) had to build it with the Azure feature enabled
|
||
|
# and with openssl statically-linked for Linux.
|
||
|
# Here's the build (with a backpointer to source) of where the bits came from:
|
||
|
# https://dev.azure.com/johnterickson/rust-lang/_build/results?buildId=275
|
||
|
|
||
|
pr: none
|
||
|
# trigger:
|
||
|
# - auto
|
||
|
|
||
|
variables:
|
||
|
- group: caching
|
||
|
|
||
|
jobs:
|
||
|
- job: Linux
|
||
|
timeoutInMinutes: 600
|
||
|
pool:
|
||
|
vmImage: ubuntu-16.04
|
||
|
steps:
|
||
|
- template: steps/linux.yml
|
||
|
strategy:
|
||
|
matrix:
|
||
|
x86_64-gnu-llvm-6.0:
|
||
|
IMAGE: x86_64-gnu-llvm-6.0
|
||
|
RUST_BACKTRACE: 1
|
||
|
|
||
|
dist-x86_64-linux:
|
||
|
IMAGE: 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
|
||
|
|
||
|
# Linux builders, remaining docker images
|
||
|
arm-android:
|
||
|
IMAGE: arm-android
|
||
|
|
||
|
armhf-gnu:
|
||
|
IMAGE: armhf-gnu
|
||
|
|
||
|
dist-various-1:
|
||
|
IMAGE: dist-various-1
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-various-2:
|
||
|
IMAGE: dist-various-2
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-aarch64-linux:
|
||
|
IMAGE: dist-aarch64-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-android:
|
||
|
IMAGE: dist-android
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-arm-linux:
|
||
|
IMAGE: dist-arm-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-armhf-linux:
|
||
|
IMAGE: dist-armhf-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-armv7-linux:
|
||
|
IMAGE: dist-armv7-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-i586-gnu-i586-i686-musl:
|
||
|
IMAGE: dist-i586-gnu-i586-i686-musl
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-i686-freebsd:
|
||
|
IMAGE: dist-i686-freebsd
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-i686-linux:
|
||
|
IMAGE: dist-i686-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-mips-linux:
|
||
|
IMAGE: dist-mips-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-mips64-linux:
|
||
|
IMAGE: dist-mips64-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-mips64el-linux:
|
||
|
IMAGE: dist-mips64el-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-mipsel-linux:
|
||
|
IMAGE: dist-mipsel-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-powerpc-linux:
|
||
|
IMAGE: dist-powerpc-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-powerpc64-linux:
|
||
|
IMAGE: dist-powerpc64-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-powerpc64le-linux:
|
||
|
IMAGE: dist-powerpc64le-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-s390x-linux:
|
||
|
IMAGE: dist-s390x-linux
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-x86_64-freebsd:
|
||
|
IMAGE: dist-x86_64-freebsd
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-x86_64-musl:
|
||
|
IMAGE: dist-x86_64-musl
|
||
|
DEPLOY: 1
|
||
|
|
||
|
dist-x86_64-netbsd:
|
||
|
IMAGE: dist-x86_64-netbsd
|
||
|
DEPLOY: 1
|
||
|
|
||
|
asmjs:
|
||
|
IMAGE: asmjs
|
||
|
i686-gnu-1:
|
||
|
IMAGE: i686-gnu-1
|
||
|
i686-gnu-2:
|
||
|
IMAGE: i686-gnu-2
|
||
|
i686-gnu-nopt:
|
||
|
IMAGE: i686-gnu-nopt
|
||
|
test-various:
|
||
|
IMAGE: test-various
|
||
|
x86_64-gnu:
|
||
|
IMAGE: x86_64-gnu
|
||
|
x86_64-gnu-full-bootstrap:
|
||
|
IMAGE: x86_64-gnu-full-bootstrap
|
||
|
x86_64-gnu-aux:
|
||
|
IMAGE: x86_64-gnu-aux
|
||
|
x86_64-gnu-tools:
|
||
|
IMAGE: 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-debug:
|
||
|
IMAGE: x86_64-gnu-debug
|
||
|
x86_64-gnu-nopt:
|
||
|
IMAGE: x86_64-gnu-nopt
|
||
|
x86_64-gnu-distcheck:
|
||
|
IMAGE: x86_64-gnu-distcheck
|
||
|
mingw-check:
|
||
|
IMAGE: mingw-check
|
||
|
|
||
|
- job: macOS
|
||
|
timeoutInMinutes: 600
|
||
|
pool:
|
||
|
vmImage: macos-10.13
|
||
|
steps:
|
||
|
- checkout: self
|
||
|
fetchDepth: 2
|
||
|
- 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
|
||
|
|
||
|
i686-apple:
|
||
|
RUST_CHECK_TARGET: check
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --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
|
||
|
|
||
|
dist-i686-apple:
|
||
|
RUST_CHECK_TARGET: dist
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
|
||
|
DEPLOY: 1
|
||
|
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||
|
MACOSX_DEPLOYMENT_TARGET: 10.7
|
||
|
NO_LLVM_ASSERTIONS: 1
|
||
|
NO_DEBUG_ASSERTIONS: 1
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
|
||
|
dist-x86_64-apple:
|
||
|
RUST_CHECK_TARGET: dist
|
||
|
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
|
||
|
DEPLOY: 1
|
||
|
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||
|
MACOSX_DEPLOYMENT_TARGET: 10.7
|
||
|
NO_LLVM_ASSERTIONS: 1
|
||
|
NO_DEBUG_ASSERTIONS: 1
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
|
||
|
- job: Windows
|
||
|
timeoutInMinutes: 600
|
||
|
pool:
|
||
|
vmImage: 'vs2017-win2016'
|
||
|
steps:
|
||
|
- template: steps/windows.yml
|
||
|
strategy:
|
||
|
matrix:
|
||
|
# 32/64 bit MSVC tests
|
||
|
x86_64-msvc-1:
|
||
|
MSYS_BITS: 64
|
||
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
|
||
|
SCRIPT: make ci-subset-1
|
||
|
# FIXME(#59637)
|
||
|
NO_DEBUG_ASSERTIONS: 1
|
||
|
NO_LLVM_ASSERTIONS: 1
|
||
|
x86_64-msvc-2:
|
||
|
MSYS_BITS: 64
|
||
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
|
||
|
SCRIPT: make ci-subset-2
|
||
|
i686-msvc-1:
|
||
|
MSYS_BITS: 32
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
|
||
|
SCRIPT: make ci-subset-1
|
||
|
i686-msvc-2:
|
||
|
MSYS_BITS: 32
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
|
||
|
SCRIPT: make ci-subset-2
|
||
|
# MSVC aux tests
|
||
|
x86_64-msvc-aux:
|
||
|
MSYS_BITS: 64
|
||
|
RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
|
||
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
|
||
|
x86_64-msvc-cargo:
|
||
|
MSYS_BITS: 64
|
||
|
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
|
||
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
|
||
|
VCVARS_BAT: vcvars64.bat
|
||
|
# MSVC tools tests
|
||
|
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
|
||
|
# FIXME(#59637)
|
||
|
NO_DEBUG_ASSERTIONS: 1
|
||
|
NO_LLVM_ASSERTIONS: 1
|
||
|
i686-mingw-2:
|
||
|
MSYS_BITS: 32
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
|
||
|
SCRIPT: make ci-subset-2
|
||
|
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-1:
|
||
|
MSYS_BITS: 64
|
||
|
SCRIPT: make ci-subset-1
|
||
|
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
|
||
|
# FIXME(#59637)
|
||
|
NO_DEBUG_ASSERTIONS: 1
|
||
|
NO_LLVM_ASSERTIONS: 1
|
||
|
x86_64-mingw-2:
|
||
|
MSYS_BITS: 64
|
||
|
SCRIPT: make ci-subset-2
|
||
|
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
|
||
|
|
||
|
# 32/64 bit MSVC and GNU deployment
|
||
|
dist-x86_64-msvc:
|
||
|
RUST_CONFIGURE_ARGS: >
|
||
|
--build=x86_64-pc-windows-msvc
|
||
|
--target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
|
||
|
--enable-full-tools
|
||
|
--enable-profiler
|
||
|
SCRIPT: python x.py dist
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
DEPLOY: 1
|
||
|
dist-i686-msvc:
|
||
|
RUST_CONFIGURE_ARGS: >
|
||
|
--build=i686-pc-windows-msvc
|
||
|
--target=i586-pc-windows-msvc
|
||
|
--enable-full-tools
|
||
|
--enable-profiler
|
||
|
SCRIPT: python x.py dist
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
DEPLOY: 1
|
||
|
dist-i686-mingw:
|
||
|
MSYS_BITS: 32
|
||
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
|
||
|
SCRIPT: python x.py dist
|
||
|
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
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
DEPLOY: 1
|
||
|
dist-x86_64-mingw:
|
||
|
MSYS_BITS: 64
|
||
|
SCRIPT: python x.py dist
|
||
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
|
||
|
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
|
||
|
DIST_REQUIRE_ALL_TOOLS: 1
|
||
|
DEPLOY: 1
|
||
|
|
||
|
# "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
|