| language: rust |
| |
| rust: nightly |
| |
| os: |
| - linux |
| - osx |
| - windows |
| |
| branches: |
| # Don't build these branches |
| except: |
| # Used by bors |
| - trying.tmp |
| - staging.tmp |
| |
| env: |
| global: |
| - RUST_BACKTRACE=1 |
| |
| install: |
| - | |
| if [ -z ${INTEGRATION} ]; then |
| rustup component add rustfmt || cargo install --git https://github.com/rust-lang/rustfmt/ --force |
| if [ "$TRAVIS_OS_NAME" == "linux" ]; then |
| . $HOME/.nvm/nvm.sh |
| nvm install stable |
| nvm use stable |
| npm install remark-cli remark-lint |
| fi |
| if [ "$TRAVIS_OS_NAME" == "windows" ]; then |
| choco install windows-sdk-10.0 |
| fi |
| fi |
| |
| # disabling the integration tests in forks should be done with |
| # if: fork = false |
| # but this is currently buggy travis-ci/travis-ci#9118 |
| matrix: |
| fast_finish: true |
| include: |
| # Builds that are executed for every PR |
| - os: osx # run base tests on both platforms |
| env: BASE_TESTS=true |
| - os: linux |
| env: BASE_TESTS=true |
| - os: windows |
| env: CARGO_INCREMENTAL=0 BASE_TESTS=true |
| |
| # Builds that are only executed when a PR is r+ed or a try build is started |
| # We don't want to run these always because they go towards |
| # the build limit within the Travis rust-lang account. |
| # The jobs are approximately sorted by execution time |
| # disabled cargo and rls integration test due to https://github.com/rust-lang/rust-clippy/issues/4121 |
| #- env: INTEGRATION=rust-lang/cargo |
| # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang-nursery/chalk |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| #- env: INTEGRATION=rust-lang/rls |
| # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=Geal/nom |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang/rustfmt |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=hyperium/hyper |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=bluss/rust-itertools |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=serde-rs/serde |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang-nursery/stdsimd |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-random/rand |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang-nursery/futures-rs |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=Marwes/combine |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang-nursery/failure |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=rust-lang-nursery/log |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| - env: INTEGRATION=chronotope/chrono |
| if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) |
| allow_failures: |
| - os: windows |
| env: CARGO_INCREMENTAL=0 BASE_TESTS=true |
| # prevent these jobs with default env vars |
| exclude: |
| - os: linux |
| - os: osx |
| - os: windows |
| |
| script: |
| - | |
| rm rust-toolchain |
| ./setup-toolchain.sh |
| export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib |
| - | |
| if [ -z ${INTEGRATION} ]; then |
| travis_wait 30 ./ci/base-tests.sh && sleep 5 |
| else |
| ./ci/integration-tests.sh && sleep 5 |
| 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 |
| set +e |
| fi |