diff --git a/.travis.yml b/.travis.yml index b83461d..51ca2a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,50 @@ language: rust +cache: cargo # https://docs.travis-ci.com/user/caching/#Rust-Cargo-cache -before_script: - - pip install 'travis-cargo' --user && export PATH=$HOME/.local/bin:$PATH +rust: + - stable + - beta + +matrix: + # Since this item is allowed to fail, don't wait for it's result to mark the + # build complete. + fast_finish: true + allow_failures: + - env: NAME='nightly' + - env: NAME='kcov' + include: + - env: NAME='nightly' + rust: nightly + - env: NAME='rustfmt' + rust: nightly + before_script: + - rustup component add rustfmt-preview + script: + - cargo fmt --all -- --write-mode=diff + - env: NAME='kcov' + sudo: required # travis-ci/travis-ci#9061 + before_script: + - cargo install cargo-update || echo "cargo-update already installed" + - cargo install cargo-kcov || echo "cargo-kcov already installed" + - cargo install-update -a + script: + - cargo kcov --print-install-kcov-sh | sh + - cargo update # Creates `Cargo.lock` needed by next command + - cargo kcov --verbose --features dss --coveralls -- --verify --exclude-pattern=/.cargo,/usr/lib,src/proto + addons: + apt: + packages: + - libcurl4-openssl-dev + - libdw-dev + - binutils-dev + - libiberty-dev + - zlib1g-dev + +env: + global: + - RUSTFLAGS="-C link-dead-code" script: - - | - travis-cargo build && - travis-cargo test + - cargo build --verbose --all-features + - cargo test --verbose --all-features + - cargo doc --verbose --all-features --no-deps