language: rust
sudo: required
dist: trusty

cache:
  cargo: true
  apt: true

matrix:
  include:
    - rust: stable
    - rust: beta
    - rust: nightly
  allow_failures:
    - rust: nightly

env:
  global:
    - RUSTFLAGS="-C link-dead-code"
    - OPENSSL_VERSION=openssl-1.0.2

before_install:
  - sudo add-apt-repository -y ppa:0k53d-karl-f830m/openssl
  - sudo apt-get update -qq
  - sudo apt-get install -y openssl libssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev

before_cache: |
  if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then
    RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin -f --version 0.6.7
  fi

script:
- cargo clean
- cargo build --features="ssl"
- cargo test --features="ssl"

after_success: |
  if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then
    cargo tarpaulin --features="ssl"  --out Xml
    bash <(curl -s https://codecov.io/bash)
    echo "Uploaded code coverage"
  fi

# Upload docs
#after_success:
#  - |
#    if [[ "$TRAVIS_OS_NAME" == "linux" && "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_RUST_VERSION" == "stable" ]]; then
#      cargo doc --features "session" --no-deps &&
#      echo "<meta http-equiv=refresh content=0;url=os_balloon/index.html>" > target/doc/index.html &&
#      git clone https://github.com/davisp/ghp-import.git &&
#      ./ghp-import/ghp_import.py -n -p -f -m "Documentation upload" -r https://"$GH_TOKEN"@github.com/"$TRAVIS_REPO_SLUG.git" target/doc &&
#      echo "Uploaded documentation"
#    fi