language: rust
rust: stable
sudo: required
dist: trusty

git:
  depth: 1

# Using 'cache: cargo' to cache target/ and all of $HOME/.cargo/
# doesn't work well: the cache is large and it takes several minutes
# to move it to and from S3. So instead we only cache the mdbook
# binary.
cache:
  directories:
    - $HOME/.cargo/bin/

matrix:
  include:
    - env: TARGET=x86_64-unknown-linux-gnu
           ALT=i686-unknown-linux-gnu
    - env: TARGET=x86_64-apple-darwin
           ALT=i686-apple-darwin
      os: osx

    - env: TARGET=x86_64-unknown-linux-gnu
           ALT=i686-unknown-linux-gnu
      rust: beta

    - env: TARGET=x86_64-unknown-linux-gnu
           ALT=i686-unknown-linux-gnu
      rust: nightly
      install:
        - mdbook --help || cargo install mdbook --force
      script:
        - cargo test
        - cargo doc --no-deps
        - (cd src/doc && mdbook build --no-create --dest-dir ../../target/doc)

  exclude:
    - rust: stable

before_script:
  - rustup target add $ALT
script:
  - cargo test

notifications:
  email:
    on_success: never

addons:
  apt:
    packages:
      - gcc-multilib
