sudo: false
language: rust
-rust:
-# - stable
-# - beta
- - nightly
-os:
- - linux
- - osx
+rust: nightly
+os: linux
cache:
directories:
- $HOME/.cargo
- libelf-dev
- libdw-dev
+matrix:
+ include:
+ - env: DEPLOY=LINUX
+ - env: CFG_RELEASE_CHANNEL=beta
+ - os: osx
+ - env: INTEGRATION=bitflags
+ - env: INTEGRATION=cargo
+ - env: INTEGRATION=chalk
+ - env: INTEGRATION=crater
+ - env: INTEGRATION=error-chain
+ - env: INTEGRATION=failure
+ - env: INTEGRATION=futures-rs
+ - env: INTEGRATION=glob
+ - env: INTEGRATION=log
+ - env: INTEGRATION=mdbook
+ - env: INTEGRATION=rand
+ - env: INTEGRATION=rust-clippy
+ - env: INTEGRATION=rust-semverver
+ - env: INTEGRATION=stdsimd
+ - env: INTEGRATION=tempdir
+ allow_failures:
+ # Need to run an lalrpop build step before testing?
+ - env: INTEGRATION=chalk
+ # PR sent
+ - env: INTEGRATION=crater
+ # #2721
+ - env: INTEGRATION=rand
+ # Doesn't build
+ - env: INTEGRATION=rust-clippy
+ # Doesn't build
+ - env: INTEGRATION=rust-semverver
+
before_script:
- |
- pip install 'travis-cargo<0.2' --user &&
- export PATH=$HOME/.local/bin:/usr/local/bin:$PATH
+ if [ -z ${INTEGRATION} ]; then
+ if [ $TRAVIS_OS_NAME = 'osx' ]; then
+ virtualenv env &&
+ source env/bin/activate &&
+ python --version &&
+ pip install 'travis-cargo<0.2'
+ else
+ pip install 'travis-cargo<0.2' --user &&
+ export PATH="$(python -m site --user-base)/bin:$PATH"
+ fi
+ fi
script:
-- |
- cargo build &&
- cargo test
+ - |
+ if [ -z ${INTEGRATION} ]; then
+ cargo build
+ cargo test
+ else
+ ./ci/integration.sh
+ fi
after_success:
-- travis-cargo coveralls --no-sudo
+- if [ -z ${INTEGRATION} ]; then travis-cargo coveralls --no-sudo; fi
before_deploy:
# TODO: cross build
on:
repo: nrc/rustfmt
tags: true
- condition: "$TRAVIS_OS_NAME = linux"
+ condition: "$DEPLOY = LINUX"
skip_cleanup: true