# Travis CI script borrows heavily from CraneStation/wasmtime project. os: - linux - osx - windows language: rust rust: - 1.36.0 - stable - beta - nightly matrix: allow_failures: # We try to be compatible with beta and nightly, but they occasionally # fail, so we don't allow them to hold up people using stable. - rust: beta - rust: nightly # Similarly, we don't need to hold up people using stable while we wait # for the results which may fail. fast_finish: true dist: xenial sudo: false # Caching done according to pointers found in # https://levans.fr/rust_travis_cache.html cache: directories: - $HOME/.cargo before_cache: - rm -rf /home/travis/.cargo/registry before_install: - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then choco install python3; fi - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then export PATH="/c/Python37:/c/Python37/Scripts:$PATH"; fi before_script: # If an old version of rustfmt from cargo is already installed, uninstall # it, since it can prevent the installation of the new version from rustup. - cargo uninstall rustfmt || true - cargo install --list # If we're testing beta or nightly, we still need to install the stable # toolchain so that we can run the stable version of rustfmt. - rustup toolchain install stable # Install the stable version of rustfmt. - rustup component add --toolchain=stable rustfmt-preview - rustup component list --toolchain=stable - rustup show - rustfmt +stable --version || echo fail # Sometimes the component isn't actually ready after being installed, and # rustup update makes it ready. - rustup update - rustfmt +stable --version script: ./test-all.sh