twasmi 0.6.2

WebAssembly interpreter
Documentation
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 [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then cargo install cargo-no-std-check; 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 no-std-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 "<meta http-equiv=refresh content=0;url=`echo $TRAVIS_REPO_SLUG | cut -d '/' -f 2`/index.html>" > 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