]> git.lizzy.rs Git - rust.git/blobdiff - .travis.yml
Make useless_attribute suggestion MaybeIncorrect
[rust.git] / .travis.yml
index eb66112213b00bdb36c64a5ab36a9c66ece77baf..9c1d004d6943eb3a6cc27251dc1a2a5d3efeea28 100644 (file)
@@ -17,6 +17,7 @@ branches:
 env:
  global:
    - RUST_BACKTRACE=1
+   - secure: "OKulfkA5OGd/d1IhvBKzRkHQwMcWjzrzbimo7+5NhkUkWxndAzl+719TB3wWvIh1i2wXXrEXsyZkXM5FtRrHm55v1VKQ5ibjEvFg1w3NIg81iDyoLq186fLqywvxGkOAFPrsePPsBj5USd5xvhwwbrjO6L7/RK6Z8shBwOSc41s="
 
 install:
   - |
@@ -39,65 +40,90 @@ install:
 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
+      env: CARGO_INCREMENTAL=0 BASE_TESTS=true OS_WINDOWS=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
     - env: INTEGRATION=rust-lang/cargo
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=rust-random/rand
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=rust-lang-nursery/stdsimd
-      if: repo =~ /^rust-lang\/rust-clippy$/
+      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$/
+      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$/
+      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$/
+      if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
     - env: INTEGRATION=rust-lang-nursery/log
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=rust-lang-nursery/chalk
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=rust-lang/rls
-      if: repo =~ /^rust-lang\/rust-clippy$/
+      if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
     - env: INTEGRATION=chronotope/chrono
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=serde-rs/serde
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=Geal/nom
-      if: repo =~ /^rust-lang\/rust-clippy$/
-    - env: INTEGRATION=hyperium/hyper
-      if: repo =~ /^rust-lang\/rust-clippy$/
+      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
+    - os: windows
+      env: CARGO_INCREMENTAL=0 BASE_TESTS=true OS_WINDOWS=true
+  # prevent these jobs with default env vars
   exclude:
     - os: linux
     - os: osx
     - os: windows
 
 script:
+  - |
+    if [ "$TRAVIS_BRANCH" == "auto" ] || [ "$TRAVIS_BRANCH" == "try" ]; then
+      pr=$(echo $TRAVIS_COMMIT_MESSAGE | grep -o "#[0-9]*" | head -1 | sed 's/^#//g')
+      output=$(curl -H "Authorization: token $GITHUB_API_TOKEN" -s "https://api.github.com/repos/rust-lang/rust-clippy/pulls/$pr" | \
+        python -c "import sys, json; print(json.load(sys.stdin)['body'])" | \
+        grep "^changelog: " | \
+        sed "s/changelog: //g")
+      if [ -z "$output" ]; then
+        echo "ERROR: PR body must contain 'changelog: ...'"
+        exit 1
+      elif [ "$output" = "none" ]; then
+        echo "WARNING: changelog is 'none'"
+      fi
+    fi
   - |
       rm rust-toolchain
-      cargo install rustup-toolchain-install-master --debug || echo "rustup-toolchain-install-master already installed"
-      RUSTC_HASH=$(git ls-remote https://github.com/rust-lang/rust.git master | awk '{print $1}')
-      travis_retry rustup-toolchain-install-master -f -n master $RUSTC_HASH
-      rustup default master
-      export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib
+      ./setup-toolchain.sh
+      if [ "$TRAVIS_OS_NAME" == "windows" ]; then
+        export PATH=$PATH:$(rustc --print sysroot)/bin
+      else
+        export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib
+      fi
   - |
     if [ -z ${INTEGRATION} ]; then
-      ./ci/base-tests.sh && sleep 5
+      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
+  if [ "$TRAVIS_OS_NAME" == "linux" ]; then
     set -ex
     if [ -z ${INTEGRATION} ]; then
       ./.github/deploy.sh