]> git.lizzy.rs Git - rust.git/blob - .travis.yml
Merge pull request #3300 from phansch/travis_windows
[rust.git] / .travis.yml
1 language: rust
2
3 rust: nightly
4
5 os:
6   - linux
7   - osx
8   - windows
9
10 sudo: false
11
12 env:
13  global:
14    - RUST_BACKTRACE=1
15
16 before_install:
17  - |
18     # work-around for issue https://github.com/travis-ci/travis-ci/issues/6307
19     # might not be necessary in the future
20     if [ "$TRAVIS_OS_NAME" == "osx" ]; then
21      command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
22      rvm get stable
23     fi
24
25 install:
26   - |
27     if [ -z ${INTEGRATION} ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then
28       . $HOME/.nvm/nvm.sh
29       nvm install stable
30       nvm use stable
31       npm install remark-cli remark-lint
32     fi
33
34 matrix:
35   include:
36     - os: osx # run base tests on both platforms
37       env: BASE_TESTS=true
38     - os: linux
39       env: BASE_TESTS=true
40     - os: windows
41       env: BASE_TEST=true
42     - env: INTEGRATION=rust-lang/cargo
43     - env: INTEGRATION=rust-lang-nursery/rand
44     - env: INTEGRATION=rust-lang-nursery/stdsimd
45     - env: INTEGRATION=rust-lang-nursery/rustfmt
46     - env: INTEGRATION=rust-lang-nursery/futures-rs
47     - env: INTEGRATION=rust-lang-nursery/failure
48     - env: INTEGRATION=rust-lang-nursery/log
49     - env: INTEGRATION=rust-lang-nursery/chalk
50     - env: INTEGRATION=rust-lang-nursery/rls
51     - env: INTEGRATION=chronotope/chrono
52     - env: INTEGRATION=serde-rs/serde
53     - env: INTEGRATION=Geal/nom
54     - env: INTEGRATION=hyperium/hyper
55   allow_failures:
56   - os: windows
57     env: BASE_TEST=true
58 # prevent these jobs with default env vars
59   exclude:
60     - os: linux
61     - os: osx
62     - os: windows
63
64 script:
65   - |
66       rm rust-toolchain
67       cargo install rustup-toolchain-install-master || echo "rustup-toolchain-install-master already installed"
68       RUSTC_HASH=$(git ls-remote https://github.com/rust-lang/rust.git master | awk '{print $1}')
69       travis_retry rustup-toolchain-install-master -f -n master $RUSTC_HASH
70       rustup default master
71       export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib
72   - |
73     if [ -z ${INTEGRATION} ]; then
74       ./ci/base-tests.sh && sleep 5
75     else
76       ./ci/integration-tests.sh && sleep 5
77     fi
78
79 after_success: |
80   #!/bin/bash
81   if [ $(uname) == Linux ]; then
82     set -ex
83     if [ -z ${INTEGRATION} ]; then
84       ./.github/deploy.sh
85     else
86       echo "Not deploying, because we're in an integration test run"
87     fi
88     set +e
89   fi