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
