language: rust
rust:
  - 1.33.0
  - stable
  - beta
  - nightly

cache: cargo
# Reduce cache bloat 
before_cache:
  - rm -rfv "$TRAVIS_HOME/.cargo/registry/src"
  - rm -rfv target/debug/incremental/{librespot,build_script_build}-*
  - rm -rfv target/debug/.fingerprint/librespot-*
  - rm -rfv target/debug/build/librespot-*
  - rm -rfv target/debug/deps/liblibrespot-*
  - rm -rfv target/debug/deps/librespot-*
  - rm -rfv target/debug/{librespot,liblibrespot}.d
  - rm -rfv target/debug/incremental/{build_script_build,librespot,librespot_core,librespot_connect,librespot_audio,librespot_metadata,librespot_playback,librespot_player,librespot_protocol}-*
  - cargo clean -p librespot -p librespot-core -p librespot-connect -p librespot-audio -p librespot-metadata -p librespot-playback
  
addons:
  apt:
    packages:
      - gcc-arm-linux-gnueabihf
      - libc6-dev-armhf-cross
      - libpulse-dev
      - portaudio19-dev
      - libasound2-dev
      - libsdl2-dev

before_script:
    - rustup component add rustfmt
    - mkdir -p ~/.cargo
    - echo '[target.armv7-unknown-linux-gnueabihf]' > ~/.cargo/config
    - echo 'linker = "arm-linux-gnueabihf-gcc"' >> ~/.cargo/config
    - rustup target add armv7-unknown-linux-gnueabihf

script:
    - cargo fmt --all -- --check
    - cargo build --locked --no-default-features
    - cargo build --locked --examples
    - cargo build --locked --no-default-features --features "with-tremor"
    - cargo build --locked --no-default-features --features "with-vorbis"
    - cargo build --locked --no-default-features --features "alsa-backend"
    - cargo build --locked --no-default-features --features "portaudio-backend"
    - cargo build --locked --no-default-features --features "pulseaudio-backend"
    - cargo build --locked --no-default-features --features "jackaudio-backend"
    - cargo build --locked --no-default-features --features "rodio-backend"
    - cargo build --locked --no-default-features --features "sdl-backend"
    - cargo build --locked --no-default-features --target armv7-unknown-linux-gnueabihf

notifications:
  email: false
  webhooks:
    urls:
      - https://webhooks.gitter.im/e/780b178b15811059752e
    on_success: change  # options: [always|never|change] default: always
    on_failure: always  # options: [always|never|change] default: always
    on_start: never     # options: [always|never|change] default: always