language: rust

git:
  depth: false

dist: trusty
sudo: required

cache:
  cargo: true
  timeout: 240
  directories:
    - $HOME/.cargo
    - $TRAVIS_BUILD_DIR/target

before_cache:
  - rm -rf $TRAVIS_BUILD_DIR/target/tmp

rust:
  - stable

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-5
      - cmake
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - cmake
      - gcc
      - binutils-dev

env:
  global:
    - RUST_BACKTRACE="1"
    - RUST_FLAGS="-C debug-assertions"

matrix:
  include:
#    - os: linux
#      env: TEST_SUITE=integration
#    - os: linux
#      env: TEST_SUITE=config-libwallet-apiwallet
#    - os: linux
#      env: TEST_SUITE=refwallet-.
#    - os: osx
#      env: TEST_SUITE=release
    - os: windows 
      env: TEST_SUITE=release

script:
  - IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[0]};
    echo "start testing on folder $DIR...";
    if [[ -n "$DIR" ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]];  then cd $DIR && cargo test --release && cd - > /dev/null; fi;
  - IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[1]};
    if [[ -n "$DIR" ]];  then
      echo "start testing on folder $DIR...";
      cd $DIR && cargo test --release && cd - > /dev/null;
    fi;
  - IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[2]};
    if [[ -n "$DIR" ]];  then
      echo "start testing on folder $DIR...";
      cd $DIR && cargo test --release && cd - > /dev/null;
    fi;

before_deploy:
  - if [[ "$TEST_SUITE" == "refwallet-." ]]; then
      cargo clean && cargo build --release && ./.auto-release.sh;
    fi
  - if [[ "$TEST_SUITE" == "release" ]]  && [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew update;
      cargo clean && cargo build --release && ./.auto-release.sh;
    fi
  - if [[ "$TEST_SUITE" == "release" ]]  && [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
      cargo clean && cargo build --release && ./.auto-release.sh;
    fi

deploy:
  provider: releases
  api_key:
    secure: G2OxRSOSGAYq1mcQTYKliOiUaT8mGLp/ZFPTAjL7ByWa0OVxdlK+WEhzN7FrStdbcb1q8DNi/Mie9b2CurVjFGyqeGSCboTdYT77TDT1Wvxp9fPLG4xbgTRwAChq8o7TxOAqeC2J56HXz2Ed2529omJmn4ems6vqI9cHQ+NfpBfh6CKbPXRD7t6Ul6FygAuggYLJE5/e4ws6pRAaD0pFn3vhSab4Ka3L4LFcxffFzH2xt2fEzoA0/NjRxgD/w8wmq6om61+Jir6Zx41HH04R7zLSn7eWVxrw15o5CD4EPqhCRwYUf1kHAabaLiRcmIz9l7jtpcgzFo68A89bFROZ/GyTHazjjobLMSvo1zZnXPGyjx1MiIfOGLBo0842BuvGCEUD2ACiDoZge0+J7mzkdIVSKVx3y2sR3S7W6z4w0YZaS9pjyukhRfIYITomPUhFcJ6xTj1EsYyEAxr+Ohg5nDZgBpy9yjOmJyBKoQgdk8IMadbBO3dhCjkrw7HO4kdtwayEo/W87UH5b2thxbTsd7EWorMh+aCyzcRdRlNBUXI4pWTaP7vZPZGaBAzRYk4ETbUgxpFVxFFNlyie2TzSPz0/j/0JcG1IZxIh9eAI89ebGVKpVgFm6TQvb58J502g3dHwoGxL8lBQTc7DUQAAVBaNEnM5floFw04igQb6VQs=
  file_glob: true
  file: target/release/grin-wallet-*.*
  skip_cleanup: true
  on:
    repo: mimblewimble/grin-wallet
    tags: true