language: rust
rust:
  - stable
  - beta
  - nightly
matrix:
  allow_failures:
    - rust: nightly
  include:
    # Nightly channel.
    - os: linux
      rust: nightly
      env: TARGET=i686-unknown-linux-musl
    - os: linux
      rust: nightly
      env: TARGET=x86_64-unknown-linux-musl
    - os: osx
      rust: nightly
      env: TARGET=x86_64-apple-darwin
    # Beta channel.
    - os: linux
      rust: beta
      env: TARGET=x86_64-unknown-linux-musl
    - os: linux
      rust: beta
      env: TARGET=x86_64-unknown-linux-gnu
    # Minimum Rust supported channel.
    - os: linux
      rust: 1.16.0
      env: TARGET=x86_64-unknown-linux-gnu
    - os: linux
      rust: 1.16.0
      env: TARGET=x86_64-unknown-linux-musl
    - os: osx
      rust: 1.16.0
      env: TARGET=x86_64-apple-darwin

notifications:
  email:
    on_success: never

language: rust
cache: cargo
matrix:
  allow_failures:
    - rust: nightly
  include:
    # Stable channel.
    - os: linux
      rust: stable
      before_script:
          - export PATH="$PATH:$HOME/.cargo/bin"
          - which rustfmt || cargo install rustfmt
      script:
          - cargo fmt -- --write-mode=diff
          - cargo build
          - cargo test
    # Beta channel.
    - os: linux
      rust: beta
    - os: linux
      rust: beta
      env: TARGET=x86_64-unknown-linux-musl
    - os: linux
      rust: beta
      env: TARGET=x86_64-unknown-linux-gnu
    # Nightly channel.
    - os: linux
      rust: nightly
      before_script:
          - export PATH="$PATH:$HOME/.cargo/bin"
          - which rustfmt || cargo install rustfmt-nightly
      script:
          - cargo fmt -- --write-mode=diff
          - cargo build
          - cargo test
    - os: linux
      rust: nightly
      env: TARGET=i686-unknown-linux-musl
    - os: linux
      rust: nightly
      env: TARGET=x86_64-unknown-linux-musl
    - os: osx
      rust: nightly
      env: TARGET=x86_64-apple-darwin
    # Minimum Rust supported channel.
    - os: linux
      rust: 1.16.0
      env: TARGET=x86_64-unknown-linux-gnu
    - os: linux
      rust: 1.16.0
      env: TARGET=x86_64-unknown-linux-musl
    - os: osx
      rust: 1.16.0
      env: TARGET=x86_64-apple-darwin

notifications:
  email:
    on_success: never

Make Travis check that the code is correctly formatted
Make Travis check that the code is correctly formatted

Closes #99.
