dist: xenial language: - rust - cpp matrix: fast_finish: true include: - rust: nightly - rust: stable - rust: stable env: TARGET=armv7-unknown-linux-gnueabihf install: - if [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then rustup target add wasm32-unknown-unknown; fi - if [ -n "$TARGET" ]; then rustup target add "$TARGET" && sudo apt-get install --yes qemu-user-static; fi - if [ "$TARGET" == "armv7-unknown-linux-gnueabihf" ]; then sudo apt-get install --yes crossbuild-essential-armhf && export QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf; fi - rustup component add rustfmt - sudo apt-get install --yes cmake script: - cargo fmt --all -- --check # Make sure nightly targets are not broken. - if [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then cargo check --tests --manifest-path=fuzz/Cargo.toml; fi - if [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then cargo check --benches --manifest-path=benches/Cargo.toml; fi # Make sure `no_std` version checks. - if [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then cargo +nightly check --no-default-features --features core; fi # Check that `vec_memory` feature works. - cargo check --features vec_memory - travis_wait 60 ./test.sh - ./doc.sh after_success: | # Build documentation and deploy it to github pages. [ $TRAVIS_BRANCH = master ] && [ $TRAVIS_PULL_REQUEST = false ] && echo "" > target/doc/index.html && sudo pip install ghp-import && ghp-import -n target/doc && git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages cache: # Don't use `cache: cargo` since it adds the `target` directory and that can be huge. # Saving and loading this directory dwarfes actual compilation and test times. But what is more # important, is that travis timeouts the build since the job doesn't produce any output for more # than 10 minutes. # # So we just cache ~/.cargo directory directories: - /home/travis/.cargo before_cache: # Travis can't cache files that are not readable by "others" - chmod -R a+r $HOME/.cargo # According to the Travis CI docs for building Rust project this is done by, - rm -rf /home/travis/.cargo/registry