]> git.lizzy.rs Git - rust.git/blob - .travis.yml
Auto merge of #40693 - frewsxcv:rollup, r=frewsxcv
[rust.git] / .travis.yml
1 language: minimal
2 sudo: required
3 dist: trusty
4 services:
5   - docker
6
7 git:
8   depth: 1
9   submodules: false
10
11 matrix:
12   fast_finish: true
13   include:
14     # Linux builders, all docker images
15     - env: IMAGE=arm-android
16     - env: IMAGE=armhf-gnu
17     - env: IMAGE=cross DEPLOY=1
18     - env: IMAGE=dist-android DEPLOY=1
19     - env: IMAGE=dist-arm-linux DEPLOY=1
20     - env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
21     - env: IMAGE=dist-freebsd DEPLOY=1
22     - env: IMAGE=dist-i586-gnu-i686-musl DEPLOY=1
23     - env: IMAGE=dist-fuchsia DEPLOY=1
24     - env: IMAGE=dist-mips-linux DEPLOY=1
25     - env: IMAGE=dist-mips64-linux DEPLOY=1
26     - env: IMAGE=dist-powerpc-linux DEPLOY=1
27     - env: IMAGE=dist-powerpc64-linux DEPLOY=1
28     - env: IMAGE=dist-s390x-linux-netbsd DEPLOY=1
29     - env: IMAGE=dist-x86-linux DEPLOY=1
30     - env: IMAGE=dist-x86_64-musl DEPLOY=1
31     - env: IMAGE=emscripten
32     - env: IMAGE=i686-gnu
33     - env: IMAGE=i686-gnu-nopt
34     - env: IMAGE=x86_64-gnu
35     - env: IMAGE=x86_64-gnu-full-bootstrap
36     - env: IMAGE=x86_64-gnu-aux
37     - env: IMAGE=x86_64-gnu-debug
38     - env: IMAGE=x86_64-gnu-nopt
39     - env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1
40     - env: IMAGE=x86_64-gnu-distcheck
41     - env: IMAGE=x86_64-gnu-incremental
42
43     # OSX builders
44     - env: >
45         RUST_CHECK_TARGET=check
46         RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
47         SRC=.
48         RUSTC_RETRY_LINKER_ON_SEGFAULT=1
49         SCCACHE_ERROR_LOG=/tmp/sccache.log
50         MACOSX_DEPLOYMENT_TARGET=10.8
51         MACOSX_STD_DEPLOYMENT_TARGET=10.7
52       os: osx
53       osx_image: xcode8.2
54       install: &osx_install_sccache >
55         travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-16-sccache-x86_64-apple-darwin &&
56           chmod +x /usr/local/bin/sccache
57     - env: >
58         RUST_CHECK_TARGET=check
59         RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
60         SRC=.
61         RUSTC_RETRY_LINKER_ON_SEGFAULT=1
62         SCCACHE_ERROR_LOG=/tmp/sccache.log
63         MACOSX_DEPLOYMENT_TARGET=10.8
64         MACOSX_STD_DEPLOYMENT_TARGET=10.7
65       os: osx
66       osx_image: xcode8.2
67       install: *osx_install_sccache
68
69     - env: >
70         RUST_CHECK_TARGET=dist
71         RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
72         SRC=.
73         DEPLOY=1
74         RUSTC_RETRY_LINKER_ON_SEGFAULT=1
75         SCCACHE_ERROR_LOG=/tmp/sccache.log
76         MACOSX_DEPLOYMENT_TARGET=10.8
77         MACOSX_STD_DEPLOYMENT_TARGET=10.7
78       os: osx
79       osx_image: xcode8.2
80       install: >
81         travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-16-sccache-x86_64-apple-darwin &&
82           chmod +x /usr/local/bin/sccache
83     - env: >
84         RUST_CHECK_TARGET=dist
85         RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended"
86         SRC=.
87         DEPLOY=1
88         RUSTC_RETRY_LINKER_ON_SEGFAULT=1
89         SCCACHE_ERROR_LOG=/tmp/sccache.log
90         MACOSX_DEPLOYMENT_TARGET=10.8
91         MACOSX_STD_DEPLOYMENT_TARGET=10.7
92       os: osx
93       osx_image: xcode8.2
94       install: *osx_install_sccache
95
96     # "alternate" deployments, these are "nightlies" but don't have assertions
97     # turned on, they're deployed to a different location primarily for projects
98     # which are stuck on nightly and don't want llvm assertions in the artifacts
99     # that they use.
100     - env: IMAGE=dist-x86-linux DEPLOY_ALT=1
101     - env: >
102         RUST_CHECK_TARGET=dist
103         RUST_CONFIGURE_ARGS="--enable-extended"
104         SRC=.
105         DEPLOY_ALT=1
106         RUSTC_RETRY_LINKER_ON_SEGFAULT=1
107         SCCACHE_ERROR_LOG=/tmp/sccache.log
108         MACOSX_DEPLOYMENT_TARGET=10.8
109         MACOSX_STD_DEPLOYMENT_TARGET=10.7
110       os: osx
111       osx_image: xcode8.2
112       install: *osx_install_sccache
113
114 env:
115   global:
116     - SCCACHE_BUCKET=rust-lang-ci-sccache
117     - AWS_ACCESS_KEY_ID=AKIAIMX7VLAS3PZAVLUQ
118     # AWS_SECRET_ACCESS_KEY=...
119     - secure: "Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
120
121 before_script:
122   - >
123       echo "#### Disk usage before running script:";
124       df -h;
125       du . | sort -nr | head -n100
126
127 script:
128   - >
129       if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
130           echo skipping, not a full build;
131       elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
132           travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
133           src/ci/run.sh;
134       else
135           travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
136           src/ci/docker/run.sh $IMAGE;
137       fi
138
139 after_success:
140   - >
141       echo "#### Build successful; Disk usage after running script:";
142       df -h;
143       du . | sort -nr | head -n100
144
145 after_failure:
146   - >
147       echo "#### Build failed; Disk usage after running script:";
148       df -h;
149       du . | sort -nr | head -n100
150   - cat obj/tmp/sccache.log
151   - cat /tmp/sccache.log
152
153 # Save tagged docker images we created and load them if they're available
154 before_cache:
155   - docker history -q rust-ci |
156     grep -v missing |
157     xargs docker save |
158     gzip > $HOME/docker/rust-ci.tar.gz
159 before_install:
160   - zcat $HOME/docker/rust-ci.tar.gz | docker load || true
161
162 notifications:
163   email: false
164
165 cache:
166   directories:
167     - $HOME/docker
168
169 before_deploy:
170   - mkdir -p deploy/$TRAVIS_COMMIT
171   - >
172       if [ "$TRAVIS_OS_NAME" == "osx" ]; then
173           rm -rf build/dist/doc &&
174           cp -r build/dist/* deploy/$TRAVIS_COMMIT;
175       else
176           rm -rf obj/build/dist/doc &&
177           cp -r obj/build/dist/* deploy/$TRAVIS_COMMIT;
178       fi
179
180 deploy:
181   - provider: s3
182     bucket: rust-lang-ci
183     skip_cleanup: true
184     local_dir: deploy
185     upload_dir: rustc-builds
186     acl: public_read
187     region: us-east-1
188     access_key_id: AKIAIPQVNYF2T3DTYIWQ
189     secret_access_key:
190       secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
191     on:
192       branch: auto
193       condition: $DEPLOY = 1
194
195   # this is the same as the above deployment provider except that it uploads to
196   # a slightly different directory and has a different trigger
197   - provider: s3
198     bucket: rust-lang-ci
199     skip_cleanup: true
200     local_dir: deploy
201     upload_dir: rustc-builds-alt
202     acl: public_read
203     region: us-east-1
204     access_key_id: AKIAIPQVNYF2T3DTYIWQ
205     secret_access_key:
206       secure: "FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
207     on:
208       branch: auto
209       condition: $DEPLOY_ALT = 1