sudo: required
language: rust

# Cache cargo symbols for faster build
cache: cargo

# Dependencies of kcov, used by coverage
addons:
  apt:
    packages:
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - binutils-dev
      - cmake # also required for cargo-update
    sources:
      - kalakris-cmake

# run builds for all the trains (and more)
rust:
  #- nightly
  #- beta
  # check it compiles on the latest stable compiler
  - stable
  # and the first stable one (this should be bumped as the minimum
  # Rust version required changes)
  #- 1.0.0

before_script:
  - cd rust
  - export PATH=$HOME/.cargo/bin:$PATH
  - cargo install cargo-update || echo "cargo-update already installed"
  - cargo install cargo-travis || echo "cargo-travis already installed"
  - cargo install-update -a # update outdated cached binaries

# the main build
# cargo bench &&
script:
  - |
      cargo build &&
      cargo test &&
      cargo doc

after_success:
# upload documentation to github.io (gh-pages branch)
# Do this manually for now, because couldn't get auto-push set up in a
# reasonably secure way (travis/github API access errors)
#  - cargo doc-upload
# measure code coverage and upload to coveralls.io
  - cargo coveralls