language: rust
rust:
  - stable
  - beta
  - nightly

sudo: required
dist: trusty

env:
  global:
    - RUSTFLAGS="-C link-dead-code"

addons:
  apt:
    packages:
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - cmake
      - gcc
      - binutils-dev
      - libiberty-dev

# Add clippy
before_script:
  - |
    if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
    ( ( cargo install clippy && export CLIPPY=true ) || export CLIPPY=false );
    fi
  - export PATH=$PATH:~/.cargo/bin

script:
  - |
    if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
        USE_SKEPTIC=1 cargo test
    else
        cargo test
    fi
  - |
    if [[ "$TRAVIS_RUST_VERSION" == "nightly" && $CLIPPY ]]; then
        cargo clippy
    fi

# Upload docs
after_success:
  - |
    if [[ "$TRAVIS_OS_NAME" == "linux" && "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
      bash <(curl https://raw.githubusercontent.com/xd009642/tarpaulin/master/travis-install.sh)
      USE_SKEPTIC=1 cargo tarpaulin --out Xml
      bash <(curl -s https://codecov.io/bash)
      echo "Uploaded code coverage"
    fi