# Some basic stuff about what we're doing here
dist: trusty
language: rust
services: docker
sudo: required
cache: cargo
rust:
  - stable # Only build on nightly rust for now
  - nightly

# This is required for coveralls
addons:
  apt:
    packages:
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - binutils-dev
      - cmake
    sources:
      - kalakris-cmake

# If nightly explodes we don't care aaas much
matrix:
  allow_failures:
  # fail on nightly while we don't have a stable build
  #  - rust: nightly

# This is a pretty big hack and only really needed on the first of a build chain
before_script:
  - cargo install cargo-travis -f && export PATH=$HOME/.cargo/bin:$PATH

# Build, test, benchmark, document. Gogogogo!
script:
  - cargo build --verbose --all --features "pg mysql sqlite3 unstable"
  - cargo test --verbose --all --features "pg mysql sqlite3 unstable"
  - cargo test --verbose --all --features "diesel pg unstable" # Diesel module _demands_ only one backend
  - cargo doc --features "pg mysql sqlite3 unstable"

# Upload the whole mess
after_success:
  - cargo coveralls --verbose --features "pg mysql sqlite3 unstable"

# AND GOD DAMN IT LET ME SLEEP!
notifications:
  email:
    on_success: never
    on_failure: never
