language: rust
cache: cargo

rust:
  - stable
  - beta
  - nightly
  - 1.14.0
os:
 - linux
 - windows

matrix:
  # rand 0.4 actually needs Rust 1.22, which leads to build failures on Rust 1.14 on Windows.
  # This is not a problem, because
  #  - we insist on rust 1.14 only for Debian, and
  #  - "rand" is only an optional dependency.
  exclude:
  - rust: 1.14.0
    os: windows

script:
  - cargo build --verbose --features=fuzztarget
  - cargo build --verbose --features=rand
  - cargo test --verbose --features=rand
  - cargo test --verbose --features="rand serde"
  - cargo build --verbose
  - cargo test --verbose
  - cargo build --release
  - cargo test --release
  - cargo bench
  - if [ "$(rustup show | grep default | grep stable)" != "" ]; then cargo doc; fi

language: rust
cache: cargo

rust:
  - stable
  - beta
  - nightly
  - 1.14.0
os:
 - linux
 - windows

matrix:
  # rand 0.4 actually needs Rust 1.22, which leads to build failures on Rust 1.14 on Windows.
  # This is not a problem, because
  #  - we insist on rust 1.14 only for Debian, and
  #  - "rand" is only an optional dependency.
  exclude:
  - rust: 1.14.0
    os: windows

script:
  - cargo build --verbose --features=fuzztarget
  - cargo build --verbose --features=rand
  - cargo test --verbose --features=rand
  - cargo test --verbose --features="rand serde"
  - cargo build --verbose
  - cargo test --verbose
  - cargo build --release
  - cargo test --release
  - cargo bench
  - if [ "$(rustup show | grep default | grep stable)" != "" ]; then cargo doc; fi
  - if [ "$(rustup show | grep default | grep stable)" != "" -a "$TRAVIS_OS_NAME" = "linux" ]; then cargo install --force cargo-web && cargo web build --target=asmjs-unknown-emscripten && cargo web test --target=asmjs-unknown-emscripten --nodejs; fi

Test builds using cargo-web on Travis to ensure they dont break
Test builds using cargo-web on Travis to ensure they dont break
