5e122f59ba
travis: Compile OSX releases with Xcode 7 Unfortunately what we're using right now, Xcode 8.2, cannot compile LLVM for OSX 10.7. We've done this historically and Gecko would like to maintain this compabitiliby. This commit moves our release builders for OSX to using Xcode 7 which can compile LLVM for 10.7. The builders running tests continue to use Xcode 8.2, however, because the LLDB version with Xcode 7, 350, is blacklisted in running our LLDB tests. To continue running LLDB tests we'll stick with Xcode 8.2.
244 lines
8.1 KiB
YAML
244 lines
8.1 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=arm-android
|
|
- env: IMAGE=armhf-gnu
|
|
- env: IMAGE=cross DEPLOY=1
|
|
- env: IMAGE=dist-android 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-i586-gnu-i686-musl DEPLOY=1
|
|
- env: IMAGE=dist-fuchsia 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=dist-x86_64-musl 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 running tests, these run the full test suite.
|
|
#
|
|
# 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.
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
|
|
SRC=.
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
|
MACOSX_DEPLOYMENT_TARGET=10.8
|
|
MACOSX_STD_DEPLOYMENT_TARGET=10.7
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: &osx_install_sccache >
|
|
travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-24-sccache-x86_64-apple-darwin &&
|
|
chmod +x /usr/local/bin/sccache &&
|
|
travis_retry curl -o /usr/local/bin/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-apple-darwin &&
|
|
chmod +x /usr/local/bin/stamp
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
|
|
SRC=.
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
|
MACOSX_DEPLOYMENT_TARGET=10.8
|
|
MACOSX_STD_DEPLOYMENT_TARGET=10.7
|
|
os: osx
|
|
osx_image: xcode8.2
|
|
install: *osx_install_sccache
|
|
|
|
# OSX builders producing releases. These do not run the full test suite and
|
|
# just produce a bunch of artifacts.
|
|
#
|
|
# Note that these are running in the `xcode7` image instead of the
|
|
# `xcode8.2` image as above. That's because we want to build releases for
|
|
# OSX 10.7 and `xcode7` is the latest Xcode able to compile LLVM for 10.7.
|
|
- env: >
|
|
RUST_CHECK_TARGET=dist
|
|
RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
|
|
SRC=.
|
|
DEPLOY=1
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
os: osx
|
|
osx_image: xcode7
|
|
install: *osx_install_sccache
|
|
- 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
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
os: osx
|
|
osx_image: xcode7
|
|
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
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
os: osx
|
|
osx_image: xcode7
|
|
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="
|
|
|
|
# Note that this is overridden on OSX builders
|
|
install: >
|
|
travis_retry curl -o $HOME/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-unknown-linux-musl &&
|
|
chmod +x $HOME/stamp &&
|
|
export PATH=$PATH:$HOME
|
|
|
|
before_script:
|
|
- >
|
|
echo "#### Disk usage before running script:";
|
|
df -h;
|
|
du . | sort -nr | head -n100
|
|
|
|
script:
|
|
- >
|
|
if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
|
|
echo skipping, not a full build
|
|
else
|
|
stamp src/ci/init_repo.sh . "$HOME/rustsrc" &&
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
stamp src/ci/run.sh;
|
|
else
|
|
stamp src/ci/docker/run.sh $IMAGE;
|
|
fi
|
|
fi
|
|
|
|
after_success:
|
|
- >
|
|
echo "#### Build successful; Disk usage after running script:";
|
|
df -h;
|
|
du . | sort -nr | head -n100
|
|
|
|
after_failure:
|
|
- >
|
|
echo "#### Build failed; Disk usage after running script:";
|
|
df -h;
|
|
du . | sort -nr | head -n100
|
|
|
|
# One of these is the linux sccache log, one is the OSX sccache log. Instead
|
|
# of worrying about what system we are just cat both. One of these commands
|
|
# will fail but that's ok, they'll both get executed.
|
|
- cat obj/tmp/sccache.log
|
|
- cat /tmp/sccache.log
|
|
|
|
# Random attempt at debugging currently. Just poking around in here to see if
|
|
# anything shows up.
|
|
- ls $HOME/Library/Logs/DiagnosticReports/
|
|
|
|
# attempt to debug anything killed by the oom killer on linux, just to see if
|
|
# it happened
|
|
- dmesg | grep -i kill
|
|
|
|
# Save tagged docker images we created and load them if they're available
|
|
# Travis saves caches whether the build failed or not, nuke rustsrc if
|
|
# the failure was while updating it (as it may be in an bad state)
|
|
# https://github.com/travis-ci/travis-ci/issues/4472
|
|
before_cache:
|
|
- docker history -q rust-ci |
|
|
grep -v missing |
|
|
xargs docker save |
|
|
gzip > $HOME/docker/rust-ci.tar.gz
|
|
- if [ ! -f $HOME/rustsrc/cache_valid1 ]; then
|
|
echo "WARNING rustsrc cache was invalid when saving";
|
|
rm -rf $HOME/rustsrc && mkdir $HOME/rustsrc;
|
|
fi
|
|
before_install:
|
|
- zcat $HOME/docker/rust-ci.tar.gz | docker load || true
|
|
- mkdir -p $HOME/rustsrc
|
|
|
|
notifications:
|
|
email: false
|
|
|
|
cache:
|
|
directories:
|
|
- $HOME/docker
|
|
- $HOME/rustsrc
|
|
|
|
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
|