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:
  - . $HOME/.nvm/nvm.sh
  - nvm install stable
  - nvm use stable
  - npm install remark-cli remark-lint

script:
 - PATH=$PATH:./node_modules/.bin
 - remark -f README.md > /dev/null
 - set -e
 - cargo build --features debugging
 - cargo test --features debugging
 - mkdir -p ~/rust/cargo/bin
 - cp target/debug/cargo-clippy ~/rust/cargo/bin/cargo-clippy
 - cp target/debug/clippy-driver ~/rust/cargo/bin/clippy-driver
 - PATH=$PATH:~/rust/cargo/bin cargo clippy --all -- -D clippy
 - cd clippy_workspace_tests && PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy && cd ..
 - cd clippy_workspace_tests/src && PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy && cd ../..
 - cd clippy_workspace_tests/subcrate && PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy && cd ../..
 - cd clippy_workspace_tests/subcrate/src && PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy && cd ../../..
 - PATH=$PATH:~/rust/cargo/bin cargo clippy --manifest-path=clippy_workspace_tests/Cargo.toml -- -D clippy
 - cd clippy_workspace_tests/subcrate && PATH=$PATH:~/rust/cargo/bin cargo clippy --manifest-path=../Cargo.toml -- -D clippy && cd ../..
 - set +e

after_success: |
  #!/bin/bash
  if [ $(uname) == Linux ]; then
    ./.github/deploy.sh
  # trigger rebuild of the clippy-service, to keep it up to date with clippy itself
    set -e
    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