8
8
depth : 1
9
9
submodules : false
10
10
11
- osx_image : xcode8.2
12
-
13
11
matrix :
12
+ fast_finish : true
14
13
include :
15
14
# Linux builders, all docker images
16
15
- env : IMAGE=arm-android
17
- - env : IMAGE=cross
18
- - env : IMAGE=dist-arm-unknown-linux-gnueabi
19
- - env : IMAGE=dist-x86_64-unknown-freebsd
16
+ - env : IMAGE=armhf-gnu
17
+ - env : IMAGE=cross DEPLOY=1
18
+ - env : IMAGE=dist-aarch64-linux DEPLOY=1
19
+ - env : IMAGE=dist-android DEPLOY=1
20
+ - env : IMAGE=dist-arm-linux DEPLOY=1
21
+ - env : IMAGE=dist-armhf-linux DEPLOY=1
22
+ - env : IMAGE=dist-armv7-linux DEPLOY=1
23
+ - env : IMAGE=dist-fuchsia DEPLOY=1
24
+ - env : IMAGE=dist-i586-gnu-i686-musl DEPLOY=1
25
+ - env : IMAGE=dist-i686-freebsd DEPLOY=1
26
+ - env : IMAGE=dist-i686-linux DEPLOY=1
27
+ - env : IMAGE=dist-mips-linux DEPLOY=1
28
+ - env : IMAGE=dist-mips64-linux DEPLOY=1
29
+ - env : IMAGE=dist-mips64el-linux DEPLOY=1
30
+ - env : IMAGE=dist-mipsel-linux DEPLOY=1
31
+ - env : IMAGE=dist-powerpc-linux DEPLOY=1
32
+ - env : IMAGE=dist-powerpc64-linux DEPLOY=1
33
+ - env : IMAGE=dist-powerpc64le-linux DEPLOY=1
34
+ - env : IMAGE=dist-s390x-linux DEPLOY=1
35
+ - env : IMAGE=dist-x86_64-freebsd DEPLOY=1
36
+ - env : IMAGE=dist-x86_64-linux DEPLOY=1
37
+ - env : IMAGE=dist-x86_64-musl DEPLOY=1
38
+ - env : IMAGE=dist-x86_64-netbsd DEPLOY=1
39
+ - env : IMAGE=emscripten
20
40
- env : IMAGE=i686-gnu
21
41
- env : IMAGE=i686-gnu-nopt
22
42
- env : IMAGE=x86_64-gnu
23
43
- env : IMAGE=x86_64-gnu-full-bootstrap
24
44
- env : IMAGE=x86_64-gnu-aux
25
45
- env : IMAGE=x86_64-gnu-debug
26
46
- env : IMAGE=x86_64-gnu-nopt
27
- - env : IMAGE=x86_64-gnu-make
28
47
- env : IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1
29
- - env : IMAGE=x86_64-musl
30
48
- env : IMAGE=x86_64-gnu-distcheck
49
+ - env : IMAGE=x86_64-gnu-incremental
31
50
32
- # OSX builders
51
+ # OSX builders running tests, these run the full test suite.
52
+ #
53
+ # Note that the compiler is compiled to target 10.8 here because the Xcode
54
+ # version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
33
55
- env : >
34
56
RUST_CHECK_TARGET=check
35
- RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
57
+ RUST_CONFIGURE_ARGS=" --build=x86_64-apple-darwin --enable-sanitizers"
36
58
SRC=.
59
+ RUSTC_RETRY_LINKER_ON_SEGFAULT=1
60
+ SCCACHE_ERROR_LOG=/tmp/sccache.log
61
+ MACOSX_DEPLOYMENT_TARGET=10.8
62
+ MACOSX_STD_DEPLOYMENT_TARGET=10.7
37
63
os: osx
64
+ osx_image: xcode8.2
38
65
install: &osx_install_sccache >
39
- curl -L https://api.pub.build.mozilla.org/tooltool/sha512/d0025b286468cc5ada83b23d3fafbc936b9f190eaa7d4a981715b18e8e3bf720a7bcee7bfe758cfdeb8268857f6098fd52dcdd8818232692a30ce91039936596 |
40
- tar xJf - -C /usr/local/bin --strip-components=1
66
+ travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-29-sccache-x86_64-apple-darwin &&
67
+ chmod +x /usr/local/bin/sccache &&
68
+ travis_retry curl -o /usr/local/bin/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-apple-darwin &&
69
+ chmod +x /usr/local/bin/stamp
41
70
- env : >
42
71
RUST_CHECK_TARGET=check
43
72
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
44
73
SRC=.
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
45
78
os: osx
79
+ osx_image: xcode8.2
46
80
install: *osx_install_sccache
81
+
82
+ # OSX builders producing releases. These do not run the full test suite and
83
+ # just produce a bunch of artifacts.
84
+ #
85
+ # Note that these are running in the `xcode7` image instead of the
86
+ # `xcode8.2` image as above. That's because we want to build releases for
87
+ # OSX 10.7 and `xcode7` is the latest Xcode able to compile LLVM for 10.7.
47
88
- env : >
48
- RUST_CHECK_TARGET=check
49
- RUST_CONFIGURE_ARGS=--build=x86_64 -apple-darwin --disable-rustbuild
89
+ RUST_CHECK_TARGET=dist
90
+ RUST_CONFIGURE_ARGS=" --build=i686 -apple-darwin --enable-extended"
50
91
SRC=.
92
+ DEPLOY=1
93
+ RUSTC_RETRY_LINKER_ON_SEGFAULT=1
94
+ SCCACHE_ERROR_LOG=/tmp/sccache.log
95
+ MACOSX_DEPLOYMENT_TARGET=10.7
51
96
os: osx
52
- install: *osx_install_sccache
97
+ osx_image: xcode7
98
+ install:
99
+ - travis_retry brew update
100
+ - travis_retry brew install xz
101
+ - *osx_install_sccache
53
102
- env : >
54
- RUST_CHECK_TARGET=
55
- RUST_CONFIGURE_ARGS=--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios
103
+ RUST_CHECK_TARGET=dist
104
+ RUST_CONFIGURE_ARGS=" --target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended --enable-sanitizers"
56
105
SRC=.
106
+ DEPLOY=1
107
+ RUSTC_RETRY_LINKER_ON_SEGFAULT=1
108
+ SCCACHE_ERROR_LOG=/tmp/sccache.log
109
+ MACOSX_DEPLOYMENT_TARGET=10.7
57
110
os: osx
58
- install: *osx_install_sccache
111
+ osx_image: xcode7
112
+ install:
113
+ - travis_retry brew update
114
+ - travis_retry brew install xz
115
+ - *osx_install_sccache
116
+
117
+ # "alternate" deployments, these are "nightlies" but don't have assertions
118
+ # turned on, they're deployed to a different location primarily for projects
119
+ # which are stuck on nightly and don't want llvm assertions in the artifacts
120
+ # that they use.
121
+ - env : IMAGE=dist-x86_64-linux DEPLOY_ALT=1
122
+ - env : >
123
+ RUST_CHECK_TARGET=dist
124
+ RUST_CONFIGURE_ARGS="--enable-extended"
125
+ SRC=.
126
+ DEPLOY_ALT=1
127
+ RUSTC_RETRY_LINKER_ON_SEGFAULT=1
128
+ SCCACHE_ERROR_LOG=/tmp/sccache.log
129
+ MACOSX_DEPLOYMENT_TARGET=10.7
130
+ os: osx
131
+ osx_image: xcode7
132
+ install:
133
+ - travis_retry brew update
134
+ - travis_retry brew install xz
135
+ - *osx_install_sccache
59
136
60
137
env :
61
138
global :
@@ -64,30 +141,115 @@ env:
64
141
# AWS_SECRET_ACCESS_KEY=...
65
142
- secure : " Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
66
143
144
+ # Note that this is overridden on OSX builders
145
+ install : >
146
+ travis_retry curl -o $HOME/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-unknown-linux-musl &&
147
+ chmod +x $HOME/stamp &&
148
+ export PATH=$PATH:$HOME
149
+
150
+ before_script :
151
+ - >
152
+ echo "#### Disk usage before running script:";
153
+ df -h;
154
+ du . | sort -nr | head -n100
155
+
67
156
script :
68
157
- >
69
158
if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
70
- echo skipping, not a full build;
71
- elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
72
- git submodule update --init &&
73
- src/ci/run.sh;
159
+ echo skipping, not a full build
74
160
else
75
- git submodule update --init &&
76
- src/ci/docker/run.sh $IMAGE;
161
+ stamp src/ci/init_repo.sh . "$HOME/rustsrc" &&
162
+ if [ "$TRAVIS_OS_NAME" = "osx" ]; then
163
+ stamp src/ci/run.sh;
164
+ else
165
+ stamp src/ci/docker/run.sh $IMAGE;
166
+ fi
77
167
fi
78
168
169
+ after_success :
170
+ - >
171
+ echo "#### Build successful; Disk usage after running script:";
172
+ df -h;
173
+ du . | sort -nr | head -n100
174
+
175
+ after_failure :
176
+ - >
177
+ echo "#### Build failed; Disk usage after running script:";
178
+ df -h;
179
+ du . | sort -nr | head -n100
180
+
181
+ # One of these is the linux sccache log, one is the OSX sccache log. Instead
182
+ # of worrying about what system we are just cat both. One of these commands
183
+ # will fail but that's ok, they'll both get executed.
184
+ - cat obj/tmp/sccache.log
185
+ - cat /tmp/sccache.log
186
+
187
+ # Random attempt at debugging currently. Just poking around in here to see if
188
+ # anything shows up.
189
+ - ls $HOME/Library/Logs/DiagnosticReports/
190
+
191
+ # attempt to debug anything killed by the oom killer on linux, just to see if
192
+ # it happened
193
+ - dmesg | grep -i kill
194
+
79
195
# Save tagged docker images we created and load them if they're available
196
+ # Travis saves caches whether the build failed or not, nuke rustsrc if
197
+ # the failure was while updating it (as it may be in a bad state)
198
+ # https://github.com/travis-ci/travis-ci/issues/4472
80
199
before_cache :
81
200
- docker history -q rust-ci |
82
201
grep -v missing |
83
202
xargs docker save |
84
203
gzip > $HOME/docker/rust-ci.tar.gz
85
204
before_install :
86
205
- zcat $HOME/docker/rust-ci.tar.gz | docker load || true
206
+ - mkdir -p $HOME/rustsrc
87
207
88
208
notifications :
89
209
email : false
90
210
91
211
cache :
92
212
directories :
93
213
- $HOME/docker
214
+
215
+ before_deploy :
216
+ - mkdir -p deploy/$TRAVIS_COMMIT
217
+ - >
218
+ if [ "$TRAVIS_OS_NAME" == "osx" ]; then
219
+ rm -rf build/dist/doc &&
220
+ cp -r build/dist/* deploy/$TRAVIS_COMMIT;
221
+ else
222
+ rm -rf obj/build/dist/doc &&
223
+ cp -r obj/build/dist/* deploy/$TRAVIS_COMMIT;
224
+ fi
225
+
226
+ deploy :
227
+ - provider : s3
228
+ bucket : rust-lang-ci
229
+ skip_cleanup : true
230
+ local_dir : deploy
231
+ upload_dir : rustc-builds
232
+ acl : public_read
233
+ region : us-east-1
234
+ access_key_id : AKIAIPQVNYF2T3DTYIWQ
235
+ secret_access_key :
236
+ secure : " FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
237
+ on :
238
+ branch : auto
239
+ condition : $DEPLOY = 1
240
+
241
+ # this is the same as the above deployment provider except that it uploads to
242
+ # a slightly different directory and has a different trigger
243
+ - provider : s3
244
+ bucket : rust-lang-ci
245
+ skip_cleanup : true
246
+ local_dir : deploy
247
+ upload_dir : rustc-builds-alt
248
+ acl : public_read
249
+ region : us-east-1
250
+ access_key_id : AKIAIPQVNYF2T3DTYIWQ
251
+ secret_access_key :
252
+ secure : " FBqDqOTeIPMu6v/WYPf4CFSlh9rLRZGKVtpLa5KkyuOhXRTrnEzBduEtS8/FMIxdQImvurhSvxWvqRybMOi4qoVfjMqqpHAI7uBbidbrvAcJoHNsx6BgUNVCIoH6a0UsAjTUtm6/YPIpzbHoLZXPL0GrHPMk6Mu04qVSmcYNWn4="
253
+ on :
254
+ branch : auto
255
+ condition : $DEPLOY_ALT = 1
0 commit comments