]> git.lizzy.rs Git - rust.git/blobdiff - .travis.yml
Merge #3362
[rust.git] / .travis.yml
index 64f524a44e98330d3668c37a09339bb1a8d3a612..04027833e7af555006fd246d80e19279e4df587d 100644 (file)
@@ -4,14 +4,22 @@ rust: nightly
 
 os:
   - linux
-  # - osx # doesn't even start atm. Not sure what travis is up to. Disabling to reduce the noise
+  - osx
+  - windows
 
 sudo: false
 
+branches:
+  only:
+    # This is where pull requests from "bors r+" are built.
+    - staging
+    # This is where pull requests from "bors try" are built.
+    - trying
+    # Also build pull requests.
+    - master
+
 env:
  global:
-   # TRAVIS_TOKEN_CLIPPY_SERVICE
-   - secure: dj8SwwuRGuzbo2wZq5z7qXIf7P3p7cbSGs1I3pvXQmB6a58gkLiRn/qBcIIegdt/nzXs+Z0Nug+DdesYVeUPxk1hIa/eeU8p6mpyTtZ+30H4QVgVzd0VCthB5F/NUiPVxTgpGpEgCM9/p72xMwTn7AAJfsGqk7AJ4FS5ZZKhqFI=
    - RUST_BACKTRACE=1
 
 before_install:
@@ -24,52 +32,73 @@ before_install:
     fi
 
 install:
-  - . $HOME/.nvm/nvm.sh
-  - nvm install stable
-  - nvm use stable
-  - npm install remark-cli remark-lint
+  - |
+    if [ -z ${INTEGRATION} ]; then
+      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
+
+matrix:
+  include:
+    - os: osx # run base tests on both platforms
+      env: BASE_TESTS=true
+    - os: linux
+      env: BASE_TESTS=true
+    - os: windows
+      env: BASE_TEST=true
+    - 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
+# uncomment once https://github.com/rust-lang/rust/issues/55376 is fixed
+#    - env: INTEGRATION=hyperium/hyper
+  allow_failures:
+  - os: windows
+    env: BASE_TEST=true
+# prevent these jobs with default env vars
+  exclude:
+    - os: linux
+    - os: osx
+    - os: windows
 
 script:
- - cargo install rustup-toolchain-install-master || echo "rustup-toolchain-install-master already installed"
- - RUSTC_HEAD=`git ls-remote https://github.com/rust-lang/rust.git HEAD | tr -d ",." | tr " \t" "\n" | grep -e "HEAD" -v`
- - rustup-toolchain-install-master $RUSTC_HEAD
- - rustup default $RUSTC_HEAD
- - 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
+  - |
+      rm rust-toolchain
+      cargo install rustup-toolchain-install-master || 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
+  - |
+    if [ -z ${INTEGRATION} ]; then
+      ./ci/base-tests.sh && sleep 5
+    else
+      ./ci/integration-tests.sh && sleep 5
+    fi
 
 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
+    set -ex
+    if [ -z ${INTEGRATION} ]; then
+      ./.github/deploy.sh
     else
-      echo "Ignored"
+      echo "Not deploying, because we're in an integration test run"
     fi
     set +e
   fi