# required because of tarpaulin dependency sudo: required language: rust # only build pushes to master # prs are build separately # https://docs.travis-ci.com/user/pull-requests/#how-pull-requests-are-built branches: only: - master matrix: fast_finish: true include: - rust: nightly - rust: beta - rust: stable install: | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then # see also https://github.com/xd009642/tarpaulin/issues/150 for tarpaulin nightly dependency RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin -f # should only be necessary until rustfmt produces consistent results in stable/nightly rustup component add rustfmt fi script: - | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then cargo fmt --all -- --check fi - cargo test # Cache `cargo install`ed tools, but don't cache the project's `target` # directory (which ends up over-caching and filling all disk space!) # https://levans.fr/rust_travis_cache.html cache: directories: - /home/travis/.cargo before_cache: # But don't cache the cargo registry - rm -rf /home/travis/.cargo/registry addons: apt: packages: # required by tarpaulin code coverage tool - libssl-dev after_success: # report coverage to coveralls # see https://github.com/xd009642/tarpaulin for more information - '[ $TRAVIS_EVENT_TYPE != "cron" ] && [ $TRAVIS_RUST_VERSION = stable ] && [ $TRAVIS_BRANCH = master ] && [ $TRAVIS_PULL_REQUEST = false ] && cargo +nightly tarpaulin --ciserver travis-ci --coveralls $TRAVIS_JOB_ID || true' - '[ $TRAVIS_RUST_VERSION = stable ] && [ $TRAVIS_BRANCH = master ] && [ $TRAVIS_PULL_REQUEST = false ] && cargo doc --no-deps && echo "" > target/doc/index.html' deploy: provider: pages skip-cleanup: true github-token: $GH_TOKEN local-dir: target/doc keep-history: false on: branch: master condition: $TRAVIS_RUST_VERSION = stable