mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
c9737af4ed
travis: Add builders without assertions This commit adds three new builders, one OSX, one Linux, and one MSVC, which will produce "nightlies" with LLVM assertions disabled. Currently all nightly releases have LLVM assertions enabled to catch bugs before they reach the beta/stable channels. The beta/stable channels, however, do not have LLVM assertions enabled. Unfortunately though projects like Servo are stuck on nightlies for the near future at least and are also suffering very long compile times. The purpose of this commit is to provide artifacts to these projects which are not distributed through normal channels (e.g. rustup) but are provided for developers to use locally if need be. Logistically these builds will all be uploaded to `rustc-builds-alt` instead of the `rustc-builds` folder of the `rust-lang-ci` bucket. These builds will stay there forever (until cleaned out if necessary) and there are no plans to integrate this with rustup and/or the official release process.
167 lines
5.5 KiB
YAML
167 lines
5.5 KiB
YAML
language: minimal
|
|
sudo: required
|
|
dist: trusty
|
|
services:
|
|
- docker
|
|
|
|
git:
|
|
depth: 1
|
|
submodules: false
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
# Linux builders, all docker images
|
|
- env: IMAGE=android DEPLOY=1
|
|
- env: IMAGE=armhf-gnu
|
|
- env: IMAGE=cross DEPLOY=1
|
|
- env: IMAGE=linux-tested-targets DEPLOY=1
|
|
- env: IMAGE=dist-arm-linux DEPLOY=1
|
|
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
|
|
- env: IMAGE=dist-freebsd DEPLOY=1
|
|
- env: IMAGE=dist-mips-linux DEPLOY=1
|
|
- env: IMAGE=dist-mips64-linux DEPLOY=1
|
|
- env: IMAGE=dist-powerpc-linux DEPLOY=1
|
|
- env: IMAGE=dist-powerpc64-linux DEPLOY=1
|
|
- env: IMAGE=dist-s390x-linux-netbsd DEPLOY=1
|
|
- env: IMAGE=dist-x86-linux DEPLOY=1
|
|
- env: IMAGE=emscripten
|
|
- env: IMAGE=i686-gnu
|
|
- env: IMAGE=i686-gnu-nopt
|
|
- env: IMAGE=x86_64-gnu
|
|
- env: IMAGE=x86_64-gnu-full-bootstrap
|
|
- env: IMAGE=x86_64-gnu-aux
|
|
- env: IMAGE=x86_64-gnu-debug
|
|
- env: IMAGE=x86_64-gnu-nopt
|
|
- env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1
|
|
- env: IMAGE=x86_64-gnu-distcheck
|
|
- env: IMAGE=x86_64-gnu-incremental
|
|
|
|
# OSX builders
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
|
|
SRC=.
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: &osx_install_sccache >
|
|
curl -L https://api.pub.build.mozilla.org/tooltool/sha512/d0025b286468cc5ada83b23d3fafbc936b9f190eaa7d4a981715b18e8e3bf720a7bcee7bfe758cfdeb8268857f6098fd52dcdd8818232692a30ce91039936596 |
|
|
tar xJf - -C /usr/local/bin --strip-components=1
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
|
|
SRC=.
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: *osx_install_sccache
|
|
|
|
- env: >
|
|
RUST_CHECK_TARGET=dist
|
|
RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
|
|
SRC=.
|
|
DEPLOY=1
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: >
|
|
curl -L https://api.pub.build.mozilla.org/tooltool/sha512/d0025b286468cc5ada83b23d3fafbc936b9f190eaa7d4a981715b18e8e3bf720a7bcee7bfe758cfdeb8268857f6098fd52dcdd8818232692a30ce91039936596 |
|
|
tar xJf - -C /usr/local/bin --strip-components=1 && brew uninstall --ignore-dependencies openssl && brew install openssl --universal --without-test
|
|
- env: >
|
|
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-extended"
|
|
SRC=.
|
|
DEPLOY=1
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: *osx_install_sccache
|
|
|
|
# "alternate" deployments, these are "nightlies" but don't have assertions
|
|
# turned on, they're deployed to a different location primarily for projects
|
|
# which are stuck on nightly and don't want llvm assertions in the artifacts
|
|
# that they use.
|
|
- env: IMAGE=dist-x86-linux DEPLOY_ALT=1
|
|
- env: >
|
|
RUST_CHECK_TARGET=dist
|
|
RUST_CONFIGURE_ARGS="--enable-extended"
|
|
SRC=.
|
|
DEPLOY_ALT=1
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: *osx_install_sccache
|
|
|
|
env:
|
|
global:
|
|
- SCCACHE_BUCKET=rust-lang-ci-sccache
|
|
- AWS_ACCESS_KEY_ID=AKIAIMX7VLAS3PZAVLUQ
|
|
# AWS_SECRET_ACCESS_KEY=...
|
|
- secure: "Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
|
|
|
|
script:
|
|
- >
|
|
if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
|
|
echo skipping, not a full build;
|
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
|
|
src/ci/run.sh;
|
|
else
|
|
travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
|
|
src/ci/docker/run.sh $IMAGE;
|
|
fi
|
|
|
|
# Save tagged docker images we created and load them if they're available
|
|
before_cache:
|
|
- docker history -q rust-ci |
|
|
grep -v missing |
|
|
xargs docker save |
|
|
gzip > $HOME/docker/rust-ci.tar.gz
|
|
before_install:
|
|
- zcat $HOME/docker/rust-ci.tar.gz | docker load || true
|
|
|
|
notifications:
|
|
email: false
|
|
|
|
cache:
|
|
directories:
|
|
- $HOME/docker
|
|
|
|
before_deploy:
|
|
- mkdir -p deploy/$TRAVIS_COMMIT
|
|
- >
|
|
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
rm -rf build/dist/doc &&
|
|
cp -r build/dist/* deploy/$TRAVIS_COMMIT;
|
|
else
|
|
rm -rf obj/build/dist/doc &&
|
|
cp -r obj/build/dist/* deploy/$TRAVIS_COMMIT;
|
|
fi
|
|
|
|
deploy:
|
|
- provider: s3
|
|
bucket: rust-lang-ci
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds
|
|
acl: public_read
|
|
region: us-east-1
|
|
access_key_id: AKIAIPQVNYF2T3DTYIWQ
|
|
secret_access_key:
|
|
secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
|
|
on:
|
|
branch: auto
|
|
condition: $DEPLOY = 1
|
|
|
|
# this is the same as the above deployment provider except that it uploads to
|
|
# a slightly different directory and has a different trigger
|
|
- provider: s3
|
|
bucket: rust-lang-ci
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds-alt
|
|
acl: public_read
|
|
region: us-east-1
|
|
access_key_id: AKIAIPQVNYF2T3DTYIWQ
|
|
secret_access_key:
|
|
secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
|
|
on:
|
|
branch: auto
|
|
condition: $DEPLOY_ALT = 1
|