008cc2d999
This commit configures our `.travis.yml` to test the full suite of tests we have on Buildbot right now. A whole mess of docker images are added to the `src/ci` directory which represent all the build environments for each configuration. Each of these environments is then configured in `.travis.yml` to run on the auto branch. Note that the full matrix of tests aren't intended to be run on all PRs. Instead, we continue to run only one entry in the matrix, forcing all others to finish quickly. Only the `auto` branch should run the full matrix of builds. Also note that the infrastructure hasn't quite been allocated yet to the rust-lang/rust repository, so everything is disabled for now except for the one build that happens on PRs. Once that infrastructure is allocated though we can enable this and let it fly! Notable modifications from the current test suite today: * Android tests are run in rustbuild instead of the makefiles, for whatever reason I couldn't get the makefiles to work on Travis. * A debuginfo test was updated to work with the current version of the Android NDK. * Some dependencies in `mk/tests.mk` were fixed to allow running tests in parallel.
83 lines
2.0 KiB
YAML
83 lines
2.0 KiB
YAML
language: rust
|
|
sudo: required
|
|
dist: trusty
|
|
services:
|
|
- docker
|
|
|
|
git:
|
|
depth: 1
|
|
submodules: false
|
|
|
|
matrix:
|
|
include:
|
|
# Linux builders, all docker images
|
|
- env: IMAGE=arm-android
|
|
- env: IMAGE=cross
|
|
- env: IMAGE=i686-gnu
|
|
- env: IMAGE=i686-gnu-nopt
|
|
- env: IMAGE=x86_64-freebsd
|
|
- env: IMAGE=x86_64-gnu
|
|
- env: IMAGE=x86_64-gnu-cargotest
|
|
- env: IMAGE=x86_64-gnu-debug
|
|
- env: IMAGE=x86_64-gnu-nopt
|
|
- env: IMAGE=x86_64-gnu-rustbuild
|
|
- env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1
|
|
- env: IMAGE=x86_64-musl
|
|
|
|
# OSX builders
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--target=x86_64-apple-darwin
|
|
SRC=.
|
|
os: osx
|
|
install: brew install ccache
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--target=i686-apple-darwin
|
|
SRC=.
|
|
os: osx
|
|
install: brew install ccache
|
|
- env: >
|
|
RUST_CHECK_TARGET=check
|
|
RUST_CONFIGURE_ARGS=--target=x86_64-apple-darwin --enable-rustbuild
|
|
SRC=.
|
|
os: osx
|
|
install: brew install ccache
|
|
- env: >
|
|
RUST_CHECK_TARGET=
|
|
RUST_CONFIGURE_ARGS=--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios
|
|
SRC=.
|
|
os: osx
|
|
install: brew install ccache
|
|
|
|
script:
|
|
- if [ -z "$ALLOW_PR" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
|
|
echo skipping, not a full build;
|
|
elif [ -z "$ENABLE_AUTO" ] then
|
|
echo skipping, not quite ready yet
|
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
git submodule update --init;
|
|
src/ci/run.sh;
|
|
else
|
|
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 -9 > $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
|
|
- $HOME/.ccache
|
|
- $HOME/.cargo
|