language: rust env: - RUSTFLAGS="-D warnings" # Cache the whole `~/.cargo` directory to keep `~/cargo/.crates.toml`. cache: directories: - /home/travis/.cargo # Don't cache the cargo registry because it's too big. before_cache: - rm -rf /home/travis/.cargo/registry branches: only: - master - staging - trying matrix: fast_finish: true include: - rust: nightly os: linux - rust: nightly os: osx osx_image: xcode9.2 - rust: nightly-x86_64-pc-windows-msvc os: windows - name: fmt rust: nightly os: linux before_script: | if ! rustup component add rustfmt; then target=`curl https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/rustfmt`; echo "'rustfmt' is unavailable on the toolchain 'nightly', use the toolchain 'nightly-$target' instead"; rustup toolchain install nightly-$target; rustup default nightly-$target; rustup component add rustfmt; fi script: - cargo fmt --all -- --check - name: docs rust: nightly os: linux script: - cargo doc --features docs - name: book rust: nightly os: linux before_script: - test -x $HOME/.cargo/bin/mdbook || ./ci/install-mdbook.sh - cargo build # to find 'extern crate async_std' by `mdbook test` script: - mdbook build docs - mdbook test -L ./target/debug/deps docs script: - cargo check --all --benches --bins --examples --tests - cargo check --features unstable --all --benches --bins --examples --tests - cargo test --all --doc --features unstable