language: rust

rust: nightly

os:
  - linux
  # - osx # doesn't even start atm. Not sure what travis is up to. Disabling to reduce the noise

sudo: false

env:
 global:
   # TRAVIS_TOKEN_CLIPPY_SERVICE
   - secure: dj8SwwuRGuzbo2wZq5z7qXIf7P3p7cbSGs1I3pvXQmB6a58gkLiRn/qBcIIegdt/nzXs+Z0Nug+DdesYVeUPxk1hIa/eeU8p6mpyTtZ+30H4QVgVzd0VCthB5F/NUiPVxTgpGpEgCM9/p72xMwTn7AAJfsGqk7AJ4FS5ZZKhqFI=
   - RUST_BACKTRACE=1

before_install:
 - |
    # work-around for issue https://github.com/travis-ci/travis-ci/issues/6307
    # might not be necessary in the future
    if [ "$TRAVIS_OS_NAME" == "osx" ]; then
     command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
     rvm get stable
    fi

install:
  - |
    if [ -z ${INTEGRATION} ]; then
      . $HOME/.nvm/nvm.sh
      nvm install stable
      nvm use stable
      npm install remark-cli remark-lint
    fi

matrix:
  include:
    - env: BASE_TESTS=true # runs the base tests
    - env: INTEGRATION=rust-lang/cargo
    - env: INTEGRATION=rust-lang-nursery/rand
    - env: INTEGRATION=rust-lang-nursery/stdsimd
    - env: INTEGRATION=rust-lang-nursery/rustfmt
    - env: INTEGRATION=rust-lang-nursery/futures-rs
    - env: INTEGRATION=rust-lang-nursery/failure
    - env: INTEGRATION=rust-lang-nursery/log
    - env: INTEGRATION=rust-lang-nursery/chalk
    - env: INTEGRATION=rust-lang-nursery/rls
    - env: INTEGRATION=chronotope/chrono
    - env: INTEGRATION=serde-rs/serde
    - env: INTEGRATION=Geal/nom
    - env: INTEGRATION=hyperium/hyper

script:
  - |
    if [ -z ${INTEGRATION} ]; then
      ./ci/base-tests.sh
    else
      ./ci/integration-tests.sh
    fi

after_success: |
  #!/bin/bash
  if [ $(uname) == Linux ]; then
    set -ex
    if [ -z ${INTEGRATION} ]; then
      ./.github/deploy.sh
    else
      echo "Not deploying, because we're in an integration test run"
    fi
    # trigger rebuild of the clippy-service, to keep it up to date with clippy itself
    if [ "$TRAVIS_PULL_REQUEST" == "false" ] &&
       [ "$TRAVIS_REPO_SLUG" == "Manishearth/rust-clippy" ] &&
       [ "$TRAVIS_BRANCH" == "master" ] &&
       [ "$TRAVIS_TOKEN_CLIPPY_SERVICE" != "" ] ; then
       curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN_CLIPPY_SERVICE" \
          -d "{ \"request\": { \"branch\":\"master\" }}" \
          https://api.travis-ci.org/repo/gnunicorn%2Fclippy-service/requests
    else
      echo "Ignored"
    fi
    set +e
  fi
