language: rust
+
rust: nightly
-sudo: false
-cache:
- cargo: true
- directories:
- - clippy_lints/target
+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=
+ - 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
- # || true, because we cache rustfmt and don't want to crash on the next travis run
- # due to rustfmt already being installed
- - (cargo install rustfmt || true)
+
+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
+ allow_failures:
+ - 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:
- - remark -f README.md > /dev/null
- - python util/update_lints.py -c
- - PATH=$PATH:~/.cargo/bin cargo fmt -- --write-mode=diff
- - 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
- - PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy
- - cd clippy_lints && PATH=$PATH:~/rust/cargo/bin cargo clippy -- -D clippy && cd ..
-
-after_success:
-- ./.github/deploy.sh
-# trigger rebuild of the clippy-service, to keep it up to date with clippy itself
-- |
- #!/bin/bash
- set -e
+ - |
+ 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
-
+ -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