mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-04 04:39:16 +00:00
289da84381
commit 6c10142251
("Update LLVM submodule") disabled the lldb build.
This patch updates the lldb and clang submodules to once again build
against the LLVM that is included in the Rust tree, and reverts the
.travis.yml changes from that patch.
397 lines
14 KiB
YAML
397 lines
14 KiB
YAML
language: shell
|
|
sudo: required
|
|
dist: trusty
|
|
services:
|
|
- docker
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gdb
|
|
|
|
git:
|
|
depth: 2
|
|
submodules: false
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
# Images used in testing PR and try-build should be run first.
|
|
- env: IMAGE=x86_64-gnu-llvm-5.0 RUST_BACKTRACE=1
|
|
if: type = pull_request OR branch = auto
|
|
|
|
- env: IMAGE=dist-x86_64-linux DEPLOY=1
|
|
if: branch = try OR branch = auto
|
|
|
|
# "alternate" deployments, these are "nightlies" but have LLVM assertions
|
|
# turned on, they're deployed to a different location primarily for
|
|
# additional testing.
|
|
- env: IMAGE=dist-x86_64-linux DEPLOY_ALT=1 CI_JOB_NAME=dist-x86_64-linux-alt
|
|
if: branch = try OR branch = auto
|
|
|
|
- env: >
|
|
RUST_CHECK_TARGET=dist
|
|
RUST_CONFIGURE_ARGS="--enable-extended --enable-profiler --enable-lldb"
|
|
SRC=.
|
|
DEPLOY_ALT=1
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
NO_LLVM_ASSERTIONS=1
|
|
NO_DEBUG_ASSERTIONS=1
|
|
CI_JOB_NAME=dist-x86_64-apple-alt
|
|
os: osx
|
|
osx_image: xcode9.3-moar
|
|
if: branch = auto
|
|
|
|
# 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.
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS="--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler"
|
|
SRC=.
|
|
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
|
|
CI_JOB_NAME=x86_64-apple
|
|
os: osx
|
|
osx_image: xcode9.3-moar
|
|
if: branch = auto
|
|
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
|
|
SRC=.
|
|
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
|
|
CI_JOB_NAME=i686-apple
|
|
os: osx
|
|
osx_image: xcode9.3-moar
|
|
if: branch = auto
|
|
|
|
# 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-full-tools --enable-profiler --enable-lldb"
|
|
SRC=.
|
|
DEPLOY=1
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
NO_LLVM_ASSERTIONS=1
|
|
NO_DEBUG_ASSERTIONS=1
|
|
CI_JOB_NAME=dist-i686-apple
|
|
os: osx
|
|
osx_image: xcode9.3-moar
|
|
if: branch = auto
|
|
|
|
- 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-full-tools --enable-sanitizers --enable-profiler --enable-lldb"
|
|
SRC=.
|
|
DEPLOY=1
|
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
|
NO_LLVM_ASSERTIONS=1
|
|
NO_DEBUG_ASSERTIONS=1
|
|
CI_JOB_NAME=dist-x86_64-apple
|
|
os: osx
|
|
osx_image: xcode9.3-moar
|
|
if: branch = auto
|
|
|
|
# Linux builders, remaining docker images
|
|
- env: IMAGE=arm-android
|
|
if: branch = auto
|
|
- env: IMAGE=armhf-gnu
|
|
if: branch = auto
|
|
- env: IMAGE=dist-various-1 DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-various-2 DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-aarch64-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-android DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-arm-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-armhf-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-armv7-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-i586-gnu-i586-i686-musl DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-i686-freebsd DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-i686-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-mips-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-mips64-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-mips64el-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-mipsel-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-powerpc-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-powerpc64-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-powerpc64le-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-s390x-linux DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-x86_64-freebsd DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-x86_64-musl DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=dist-x86_64-netbsd DEPLOY=1
|
|
if: branch = auto
|
|
- env: IMAGE=asmjs
|
|
if: branch = auto
|
|
- env: IMAGE=i686-gnu
|
|
if: branch = auto
|
|
- env: IMAGE=i686-gnu-nopt
|
|
if: branch = auto
|
|
- env: IMAGE=wasm32-unknown
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu-full-bootstrap
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu-aux
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu-tools
|
|
if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri)\b)/)
|
|
- env: IMAGE=x86_64-gnu-debug
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu-nopt
|
|
if: branch = auto
|
|
- env: IMAGE=x86_64-gnu-distcheck
|
|
if: branch = auto
|
|
- env: IMAGE=mingw-check
|
|
if: type = pull_request OR branch = auto
|
|
|
|
- stage: publish toolstate
|
|
if: branch = master AND type = push
|
|
before_install: []
|
|
install: []
|
|
sudo: false
|
|
script:
|
|
MESSAGE_FILE=$(mktemp -t msg.XXXXXX);
|
|
. src/ci/docker/x86_64-gnu-tools/repo.sh;
|
|
commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";
|
|
|
|
env:
|
|
global:
|
|
- SCCACHE_BUCKET=rust-lang-ci-sccache2
|
|
- SCCACHE_REGION=us-west-1
|
|
- AWS_ACCESS_KEY_ID=AKIAJAMV3QAMMA6AXHFQ
|
|
# AWS_SECRET_ACCESS_KEY=...
|
|
- secure: "j96XxTVOSUf4s4r4htIxn/fvIa5DWbMgLqWl7r8z2QfgUwscmkMXAwXuFNc7s7bGTpV/+CgDiMFFM6BAFLGKutytIF6oA02s9b+usQYnM0th7YQ2AIgm9GtMTJCJp4AoyfFmh8F2faUICBZlfVLUJ34udHEe35vOklix+0k4WDo="
|
|
# TOOLSTATE_REPO_ACCESS_TOKEN=...
|
|
- secure: "ESfcXqv4N2VMhqi2iIyw6da9VrsA78I4iR1asouCaq4hzTTrkB4WNRrfURy6xg72gQ4nMhtRJbB0/2jmc9Cu1+g2CzXtyiL223aJ5CKrXdcvbitopQSDfp07dMWm+UED+hNFEanpErKAeU/6FM3A+J+60PMk8MCF1h9tqNRISJw="
|
|
|
|
before_install:
|
|
# We'll use the AWS cli to download/upload cached docker layers, so install
|
|
# that here.
|
|
- if [ "$TRAVIS_OS_NAME" = linux ]; then
|
|
pip install --user awscli;
|
|
export PATH=$PATH:$HOME/.local/bin;
|
|
fi
|
|
- mkdir -p $HOME/rustsrc
|
|
# FIXME(#46924): these two commands are required to enable IPv6,
|
|
# they shouldn't exist, please revert once more official solutions appeared.
|
|
# see https://github.com/travis-ci/travis-ci/issues/8891#issuecomment-353403729
|
|
- if [ "$TRAVIS_OS_NAME" = linux ]; then
|
|
echo '{"ipv6":true,"fixed-cidr-v6":"fd9a:8454:6789:13f7::/64"}' | sudo tee /etc/docker/daemon.json;
|
|
sudo service docker restart;
|
|
fi
|
|
|
|
install:
|
|
- case "$TRAVIS_OS_NAME" in
|
|
linux)
|
|
travis_retry curl -fo $HOME/stamp https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-03-17-stamp-x86_64-unknown-linux-musl &&
|
|
chmod +x $HOME/stamp &&
|
|
export PATH=$PATH:$HOME
|
|
;;
|
|
osx)
|
|
if [[ "$RUST_CHECK_TARGET" == dist ]]; then
|
|
travis_retry brew update &&
|
|
travis_retry brew install xz &&
|
|
travis_retry brew install swig;
|
|
fi &&
|
|
travis_retry curl -fo /usr/local/bin/sccache https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2018-04-02-sccache-x86_64-apple-darwin &&
|
|
chmod +x /usr/local/bin/sccache &&
|
|
travis_retry curl -fo /usr/local/bin/stamp https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-03-17-stamp-x86_64-apple-darwin &&
|
|
chmod +x /usr/local/bin/stamp &&
|
|
travis_retry curl -f http://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-apple-darwin.tar.xz | tar xJf - &&
|
|
export CC=`pwd`/clang+llvm-6.0.0-x86_64-apple-darwin/bin/clang &&
|
|
export CXX=`pwd`/clang+llvm-6.0.0-x86_64-apple-darwin/bin/clang++ &&
|
|
export AR=ar
|
|
;;
|
|
esac
|
|
|
|
before_script:
|
|
- >
|
|
echo "#### Disk usage before running script:";
|
|
df -h;
|
|
du . | sort -nr | head -n100
|
|
- >
|
|
RUN_SCRIPT="src/ci/init_repo.sh . $HOME/rustsrc";
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
export RUN_SCRIPT="$RUN_SCRIPT && src/ci/run.sh";
|
|
else
|
|
export RUN_SCRIPT="$RUN_SCRIPT && src/ci/docker/run.sh $IMAGE";
|
|
# Enable core dump on Linux.
|
|
sudo sh -c 'echo "/checkout/obj/cores/core.%p.%E" > /proc/sys/kernel/core_pattern';
|
|
fi
|
|
|
|
# Log time information from this machine and an external machine for insight into possible
|
|
# clock drift. Timezones don't matter since relative deltas give all the necessary info.
|
|
script:
|
|
- >
|
|
date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
|
|
- stamp sh -x -c "$RUN_SCRIPT"
|
|
- >
|
|
date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
|
|
|
|
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
|
|
|
|
# Random attempt at debugging currently. Just poking around in here to see if
|
|
# anything shows up.
|
|
|
|
# Dump backtrace for macOS
|
|
- ls -lat $HOME/Library/Logs/DiagnosticReports/
|
|
- find $HOME/Library/Logs/DiagnosticReports
|
|
-type f
|
|
-name '*.crash'
|
|
-not -name '*.stage2-*.crash'
|
|
-not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash'
|
|
-exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \;
|
|
-exec head -750 {} \;
|
|
-exec echo travis_fold":"end:crashlog \; || true
|
|
|
|
# Dump backtrace for Linux
|
|
- ln -s . checkout &&
|
|
for CORE in obj/cores/core.*; do
|
|
EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|');
|
|
if [ -f "$EXE" ]; then
|
|
printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE";
|
|
gdb -q -c "$CORE" "$EXE"
|
|
-iex 'set auto-load off'
|
|
-iex 'dir src/'
|
|
-iex 'set sysroot .'
|
|
-ex bt
|
|
-ex q;
|
|
echo travis_fold":"end:crashlog;
|
|
fi;
|
|
done || true
|
|
|
|
# see #50887
|
|
- cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
|
|
|
|
# attempt to debug anything killed by the oom killer on linux, just to see if
|
|
# it happened
|
|
- dmesg | grep -i kill
|
|
|
|
notifications:
|
|
email: false
|
|
|
|
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
|
|
- ls -la deploy/$TRAVIS_COMMIT
|
|
|
|
deploy:
|
|
- provider: s3
|
|
bucket: rust-lang-ci2
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds
|
|
acl: public_read
|
|
region: us-west-1
|
|
access_key_id: AKIAJVBODR3IA4O72THQ
|
|
secret_access_key:
|
|
secure: "kUGd3t7JcVWFESgIlzvsM8viZgCA9Encs3creW0xLJaLSeI1iVjlJK4h/2/nO6y224AFrh/GUfsNr4/4AlxPuYb8OU5oC5Lv+Ff2JiRDYtuNpyQSKAQp+bRYytWMtrmhja91h118Mbm90cUfcLPwkdiINgJNTXhPKg5Cqu3VYn0="
|
|
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-ci2
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds-alt
|
|
acl: public_read
|
|
region: us-west-1
|
|
access_key_id: AKIAJVBODR3IA4O72THQ
|
|
secret_access_key:
|
|
secure: "kUGd3t7JcVWFESgIlzvsM8viZgCA9Encs3creW0xLJaLSeI1iVjlJK4h/2/nO6y224AFrh/GUfsNr4/4AlxPuYb8OU5oC5Lv+Ff2JiRDYtuNpyQSKAQp+bRYytWMtrmhja91h118Mbm90cUfcLPwkdiINgJNTXhPKg5Cqu3VYn0="
|
|
on:
|
|
branch: auto
|
|
condition: $DEPLOY_ALT = 1
|
|
|
|
# These two providers are the same as the two above, except deploy on the
|
|
# try branch. Travis does not appear to provide a way to use "or" in these
|
|
# conditions.
|
|
- provider: s3
|
|
bucket: rust-lang-ci2
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds
|
|
acl: public_read
|
|
region: us-west-1
|
|
access_key_id: AKIAJVBODR3IA4O72THQ
|
|
secret_access_key:
|
|
secure: "kUGd3t7JcVWFESgIlzvsM8viZgCA9Encs3creW0xLJaLSeI1iVjlJK4h/2/nO6y224AFrh/GUfsNr4/4AlxPuYb8OU5oC5Lv+Ff2JiRDYtuNpyQSKAQp+bRYytWMtrmhja91h118Mbm90cUfcLPwkdiINgJNTXhPKg5Cqu3VYn0="
|
|
on:
|
|
branch: try
|
|
condition: $DEPLOY = 1
|
|
|
|
- provider: s3
|
|
bucket: rust-lang-ci2
|
|
skip_cleanup: true
|
|
local_dir: deploy
|
|
upload_dir: rustc-builds-alt
|
|
acl: public_read
|
|
region: us-west-1
|
|
access_key_id: AKIAJVBODR3IA4O72THQ
|
|
secret_access_key:
|
|
secure: "kUGd3t7JcVWFESgIlzvsM8viZgCA9Encs3creW0xLJaLSeI1iVjlJK4h/2/nO6y224AFrh/GUfsNr4/4AlxPuYb8OU5oC5Lv+Ff2JiRDYtuNpyQSKAQp+bRYytWMtrmhja91h118Mbm90cUfcLPwkdiINgJNTXhPKg5Cqu3VYn0="
|
|
on:
|
|
branch: try
|
|
condition: $DEPLOY_ALT = 1
|