language: rust
sudo: false

matrix:
  include:
    - rust: 1.16.0
      install:
      script: cargo build
    - rust: stable
      env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
    - rust: stable
      env: TARGET=i686-unknown-linux-gnu
    - os: osx
      env: TARGET=x86_64-apple-darwin NO_ADD=1
    - os: osx
      env: TARGET=aarch64-apple-ios NO_RUN=--no-run TARGET_SYSROOT=$(xcrun -sdk iphoneos --show-sdk-path)
    - rust: beta
      env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1
    - rust: nightly
      env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1

    - rust: nightly
      before_script:
        - pip install 'travis-cargo<0.2' --user && export PATH=$HOME/.local/bin:$PATH
      install:
      script:
        - cargo doc --no-deps --all-features
      after_success:
        - travis-cargo --only nightly doc-upload

install:
  - if [ -z "$NO_ADD" ]; then rustup target add $TARGET; fi

script:
  - cargo build --verbose
  # FIXME: no idea why `--test-threads=1` is required on the OSX builder, it
  # just randomly broke one day when the travis image was upgraded, and
  # debugging turned up no easily found source of bugs...
  #
  # good build - https://travis-ci.org/alexcrichton/cc-rs/builds/409602374
  #  bad build - https://travis-ci.org/alexcrichton/cc-rs/builds/410489079
  #
  # Those are using the same compiler, same commit, same... everything. Except
  # the OSX image! No idea what changed...
  - cargo test --verbose $NO_RUN -- --test-threads=1
  - cargo test --verbose --features parallel $NO_RUN -- --test-threads=1
  - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET $NO_RUN
  - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET --features parallel $NO_RUN
  - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET --release $NO_RUN
  - cargo doc
  - cargo clean && cargo build
  - rustdoc --test README.md -L target/debug -L target/debug/deps

env:
  global:
    secure: "CBtqrudgE0PS8x3kTr44jKbC2D4nfnmdYVecooNm0qnER4B4TSvZpZSQoCgKK6k4BYQuOSyFTOwYx6M79w39ZMOgyCP9ytB+tyMWL0/+ZuUQL04yVg4M5vd3oJMkOaXbvG56ncgPyFrseY+FPDg+mXAzvJk/nily37YXjkQj2D0="

notifications:
  email:
    on_success: never
addons:
  apt:
    packages:
      - g++-multilib
