language: rust
sudo: false

# We support too many combinations of Rust releases, crate features, operating
# systems, and architectures to even remotely test all combinations.
# Yet it turns out we can test most of these independent of each other, because
# they serve different goals or test different pieces of code.
#
# RUST RELEASES
# Goal: make sure we don't use language features unavailable on a certain
#       version, and build without warnings.
# We have different builders use 4 Rust releases, a pinned stable release,
# the latest stable, beta and nightly.
#
# ARCHITECTURES
# Goal: test against issues caused by differences in endianness, pointer sizes,
#       etc.
# We run tests on 4 different architectures.
# - x64_84, default on Travis (Linux) and AppVeyor (Windows)
# - i686, second AppVeyor (Windows) configuration
# - MIPS, big-endian Linux emulated with QEMU (thanks to Trust)
# - ARMv7, Android emulated with QEMU (thanks to Trust)
#
# OPERATING SYSTEMS
# Goal: test on many operating systems, to verify the OsRng code, which is
#       mostly architecture-independent.
# We run tests on Linux, OS X, Windows, Android (emulated), and Node.js (using
# cargo-web).
# One builder cross-compiles for many of the remaining OSes, which ensures we
# keep building, but doesn't run tests.
# OSes supported by Rand but which we can't cross-compile because there
# is no pre-built standard library available: Dragonfly BSD, Haiku, OpenBSD.
#
# CRATE FEATURES, TESTS, AND SUB-CRATES
# Goal: Run unit tests, doctests, examples, and test benchmarks for all crates,
#       in configurations that cover all interesting combinations of features.
# Tests run on rand:
# - test no_std support, but only the unit tests:
#   `cargo test --tests --no-default-features`
# - run unit tests and doctests with all features which are available on stable:
#   `cargo test --features=serde1,log`
# - test examples:
#   `cargo test --examples`
# Additional tests on nightly:
# - run unit tests and doctests with all features which are available on nightly:
#   `cargo test --all-features`
# - test no_std support, including the nightly alloc feature:
#   cargo test --tests --no-default-features --features=alloc
# - run benchmarks as tests:
#   `cargo test --benches --features=nightly`
# Tests on subcrates:
# - select crates via --manifest-path (more reliable than --package)
# - test appropriate feature matrix
#
# TODO: SIMD support on stable releases
# NOTE: SIMD support is unreliable on nightly; we track the latest release
matrix:
  include:
    - rust: 1.32.0
      env: DESCRIPTION="Linux, 1.32.0"
      os: linux
      script:
        # Differs from standard script: rand_pcg features
        - cargo test --tests --no-default-features
        # TODO: add simd_support feature:
        - cargo test --features=serde1,log
        - cargo test --examples
        - cargo test --manifest-path rand_core/Cargo.toml
        - cargo test --manifest-path rand_core/Cargo.toml --no-default-features
        - cargo test --manifest-path rand_distr/Cargo.toml
        - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
        # TODO: cannot test rand_pcg due to explicit dependency on i128
        - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xoshiro/Cargo.toml
        - cargo test --manifest-path rand_chacha/Cargo.toml
        - cargo test --manifest-path rand_hc/Cargo.toml
        - cargo test --manifest-path rand_jitter/Cargo.toml
        - cargo test --manifest-path rand_os/Cargo.toml

    - rust: 1.32.0
      env: DESCRIPTION="OSX, 1.32.0"
      os: osx
      script:
        # Differs from standard script: rand_pcg features
        - cargo test --tests --no-default-features
        # TODO: add simd_support feature:
        - cargo test --features=serde1,log
        - cargo test --examples
        - cargo test --manifest-path rand_core/Cargo.toml
        - cargo test --manifest-path rand_core/Cargo.toml --no-default-features
        - cargo test --manifest-path rand_distr/Cargo.toml
        - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
        # TODO: cannot test rand_pcg due to explicit dependency on i128
        - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xoshiro/Cargo.toml
        - cargo test --manifest-path rand_chacha/Cargo.toml
        - cargo test --manifest-path rand_hc/Cargo.toml
        - cargo test --manifest-path rand_jitter/Cargo.toml
        - cargo test --manifest-path rand_os/Cargo.toml

    - rust: stable
      env: DESCRIPTION="Linux, stable"

    - rust: stable
      env: DESCRIPTION="OSX+iOS, stable"
      os: osx
      install:
        - rustup target add aarch64-apple-ios
      script:
        # Differs from standard script: includes aarch64-apple-ios cross-build
        - cargo test --tests --no-default-features
        # TODO: add simd_support feature:
        - cargo test --features=serde1,log
        - cargo test --examples
        - cargo test --manifest-path rand_core/Cargo.toml
        - cargo test --manifest-path rand_core/Cargo.toml --no-default-features
        - cargo test --manifest-path rand_distr/Cargo.toml
        - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_pcg/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xoshiro/Cargo.toml
        - cargo test --manifest-path rand_chacha/Cargo.toml
        - cargo test --manifest-path rand_hc/Cargo.toml
        - cargo test --manifest-path rand_jitter/Cargo.toml
        - cargo test --manifest-path rand_os/Cargo.toml
        - cargo build --target=aarch64-apple-ios

    - rust: beta
      env: DESCRIPTION="Linux, beta"

    - rust: nightly
      os: linux
      env: DESCRIPTION="Linux, nightly, docs"
      install:
        - cargo --list | egrep "^\s*deadlinks$" -q || cargo install cargo-deadlinks
        - cargo deadlinks -V
      before_script:
        - pip install 'travis-cargo<0.2' --user && export PATH=$HOME/.local/bin:$PATH
      script:
        # Differs from standard script: alloc feature, all features, doc build
        - cargo test --tests --no-default-features --features=alloc
        - cargo test --all-features
        - cargo test --benches --features=nightly
        - cargo test --examples
        - cargo test --manifest-path rand_core/Cargo.toml
        - cargo test --manifest-path rand_core/Cargo.toml --no-default-features --features=alloc
        - cargo test --manifest-path rand_distr/Cargo.toml
        - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_pcg/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xoshiro/Cargo.toml
        - cargo test --manifest-path rand_chacha/Cargo.toml
        - cargo test --manifest-path rand_hc/Cargo.toml
        - cargo test --manifest-path rand_jitter/Cargo.toml
        - cargo test --manifest-path rand_os/Cargo.toml
        # remove cached documentation, otherwise files from previous PRs can get included
        - rm -rf target/doc
        - cargo doc --no-deps --all --all-features
        - cargo deadlinks --dir target/doc
      after_success:
        - travis-cargo --only nightly doc-upload

    - rust: nightly
      os: osx
      env: DESCRIPTION="OSX, nightly, docs"
      install:
        - cargo --list | egrep "^\s*deadlinks$" -q || cargo install cargo-deadlinks
        - cargo deadlinks -V
      script:
        # Differs from standard script: alloc feature, all features, doc build
        - cargo test --tests --no-default-features --features=alloc
        - cargo test --all-features
        - cargo test --benches --features=nightly
        - cargo test --examples
        - cargo test --manifest-path rand_core/Cargo.toml
        - cargo test --manifest-path rand_core/Cargo.toml --no-default-features --features=alloc
        - cargo test --manifest-path rand_distr/Cargo.toml
        - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_pcg/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
        - cargo test --manifest-path rand_xoshiro/Cargo.toml
        - cargo test --manifest-path rand_chacha/Cargo.toml
        - cargo test --manifest-path rand_hc/Cargo.toml
        - cargo test --manifest-path rand_jitter/Cargo.toml
        - cargo test --manifest-path rand_os/Cargo.toml
        # remove cached documentation, otherwise files from previous PRs can get included
        - rm -rf target/doc
        - cargo doc --no-deps --all --all-features
        - cargo deadlinks --dir target/doc

    - rust: nightly
      env: DESCRIPTION="WASM via emscripten, stdweb and wasm-bindgen"
      install:
        - rustup target add wasm32-unknown-unknown
        - rustup target add wasm32-unknown-emscripten
        - nvm install 9
        - ./utils/ci/install_cargo_web.sh
        - cargo web prepare-emscripten
        - cargo web -V
        - cargo list | grep install-update || cargo install -f cargo-update
        - cargo install-update -i cargo-update wasm-bindgen-cli wasm-pack
      addons:
        chrome: stable
      script:
        # Testing wasm32-unknown-emscripten fails because of rust-lang/rust#49877
        # However, we can still build and link all tests to make sure that works.
        # This is actually useful as it finds stuff such as rust-random/rand#669
        - EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0" cargo web test --target wasm32-unknown-emscripten --no-run
        #- cargo web test --target wasm32-unknown-emscripten
        #- cargo web test --nodejs --target wasm32-unknown-emscripten
        #- cargo build --target wasm32-unknown-unknown # without any features
        - cargo build --target wasm32-unknown-unknown --features=wasm-bindgen
        - cargo web test --target wasm32-unknown-unknown --features=stdweb
        - cargo build --manifest-path tests/wasm_bindgen/Cargo.toml --target wasm32-unknown-unknown
        - wasm-bindgen --nodejs target/wasm32-unknown-unknown/debug/rand_wasm_bindgen_test.wasm --out-dir tests/wasm_bindgen/js
        - node tests/wasm_bindgen/js/index.js
        - wasm-pack test --node tests/wasm_bindgen

    - rust: nightly
      env: DESCRIPTION="cross-platform builder (doesn't run tests)"
      install:
        - rustup target add x86_64-sun-solaris
        - rustup target add x86_64-unknown-cloudabi
        - rustup target add x86_64-unknown-freebsd
        #- rustup target add x86_64-unknown-fuchsia
        - rustup target add x86_64-unknown-netbsd
        - rustup target add x86_64-unknown-redox
      script:
        # Test the top-level crate with all features:
        - cargo build --target=x86_64-sun-solaris --all-features
        - cargo build --target=x86_64-unknown-cloudabi --all-features
        - cargo build --target=x86_64-unknown-freebsd --all-features
        #- cargo build --target=x86_64-unknown-fuchsia --all-features
        - cargo build --target=x86_64-unknown-netbsd --all-features
        - cargo build --target=x86_64-unknown-redox --all-features

    # Trust cross-built/emulated targets. We must repeat all non-default values.
    - rust: stable
      sudo: required
      dist: trusty
      services: docker
      env: DESCRIPTION="Linux (MIPS, big-endian)" TARGET=mips-unknown-linux-gnu
      install:
        - sh utils/ci/install.sh
        - source ~/.cargo/env || true
      script:
        - bash utils/ci/script.sh
    - rust: stable
      sudo: required
      dist: trusty
      services: docker
      env: DESCRIPTION="Android (ARMv7)" TARGET=armv7-linux-androideabi
      install:
        - sh utils/ci/install.sh
        - source ~/.cargo/env || true
      script:
        - bash utils/ci/script.sh
    - rust: nightly
      env: DESCRIPTION="no_std platform test"
      install:
        - rustup target add thumbv6m-none-eabi
      script:
        # Test the top-level crate with all features:
        - cargo build --target=thumbv6m-none-eabi --no-default-features

    - rust: nightly
      os: linux
      env: DESCRIPTION="Miri, nightly"
      script:
        - sh utils/ci/miri.sh

before_install:
  - set -e
  - rustup self update

script:
  - cargo test --tests --no-default-features
  - cargo test --tests --no-default-features --features getrandom
  # TODO: add simd_support feature:
  - cargo test --features=serde1,log
  - cargo test --examples
  - cargo test --manifest-path rand_core/Cargo.toml
  - cargo test --manifest-path rand_core/Cargo.toml --no-default-features
  - cargo test --manifest-path rand_distr/Cargo.toml
  - cargo test --manifest-path rand_isaac/Cargo.toml --features=serde1
  - cargo test --manifest-path rand_pcg/Cargo.toml --features=serde1
  - cargo test --manifest-path rand_xorshift/Cargo.toml --features=serde1
  - cargo test --manifest-path rand_xoshiro/Cargo.toml
  - cargo test --manifest-path rand_chacha/Cargo.toml
  - cargo test --manifest-path rand_hc/Cargo.toml
  - cargo test --manifest-path rand_jitter/Cargo.toml
  - cargo test --manifest-path rand_os/Cargo.toml

after_script: set +e

cache:
  cargo: true
  directories:
    - .local/share/cargo-web

before_cache:
  # Travis can't cache files that are not readable by "others"
  - chmod -R a+r $HOME/.cargo

env:
  global:
    secure: "BdDntVHSompN+Qxz5Rz45VI4ZqhD72r6aPl166FADlnkIwS6N6FLWdqs51O7G5CpoMXEDvyYrjmRMZe/GYLIG9cmqmn/wUrWPO+PauGiIuG/D2dmfuUNvSTRcIe7UQLXrfP3yyfZPgqsH6pSnNEVopquQKy3KjzqepgriOJtbyY="

notifications:
  email:
    on_success: never
