forked from rust-lang/rustup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
167 lines (156 loc) · 6.3 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
sudo: required
dist: trusty
services:
- docker
matrix:
include:
# Linux builds use the `rust-slave-dist` image so we link them against a
# "super old glibc" to ensure that it runs on as many platforms as possible.
- os: linux
env: TARGET=i686-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-dist:2015-10-20b
- os: linux
env: TARGET=x86_64-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-dist:2015-10-20b
# Cross builds happen in the `rust-slave-linux-cross` image to ensure that
# we use the right cross compilers for these targets. That image should
# bundle all the gcc cross compilers to enable us to build OpenSSL
- os: linux
env: TARGET=arm-unknown-linux-gnueabi
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=arm-unknown-linux-gnueabihf
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=armv7-unknown-linux-gnueabihf
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=aarch64-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=x86_64-unknown-freebsd
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=x86_64-unknown-netbsd
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=powerpc-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=powerpc64-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=powerpc64le-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=mips-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=mipsel-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=mips64-unknown-linux-gnuabi64
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=mips64el-unknown-linux-gnuabi64
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
- os: linux
env: TARGET=s390x-unknown-linux-gnu
DOCKER=alexcrichton/rust-slave-linux-cross:2016-11-11
SKIP_TESTS=1
# Android use a local docker image
- os: linux
env: TARGET=arm-linux-androideabi
DOCKER=android
SKIP_TESTS=1
- os: linux
env: TARGET=armv7-linux-androideabi
DOCKER=android
SKIP_TESTS=1
- os: linux
env: TARGET=aarch64-linux-android
DOCKER=android
SKIP_TESTS=1
- os: linux
env: TARGET=i686-linux-android
DOCKER=android
SKIP_TESTS=1
- os: linux
env: TARGET=x86_64-linux-android
DOCKER=android
SKIP_TESTS=1
# On OSX we want to target 10.7 so we ensure that the appropriate
# environment variable is set to tell the linker what we want.
- os: osx
env: TARGET=i686-apple-darwin
MACOSX_DEPLOYMENT_TARGET=10.7
- os: osx
env: TARGET=x86_64-apple-darwin
MACOSX_DEPLOYMENT_TARGET=10.7
cache:
# We're going to download things we don't necessarily want to cache into the `target` directory, so
# don't use travis's native `cargo` caching, which just grabs the whole folder.
directories:
- target/$TARGET/openssl/openssl-install
- target/$TARGET/release
- target/release/deps
branches:
only:
- master
- stable
- auto
notifications:
webhooks: http://buildbot.rust-lang.org/homu/travis
install:
- sudo pip install awscli
- aws configure set preview.cloudfront true
- curl https://static.rust-lang.org/rustup.sh |
sh -s -- --prefix=$HOME/rust --spec=nightly-2017-04-25 --with-target=$TARGET
script:
- mkdir -p target/$TARGET
- if [ ! -z "$DOCKER" ]; then
sh ci/build-run-docker.sh "$DOCKER" "$TARGET" "$SKIP_TESTS";
else
PATH=$HOME/rust/bin:$PATH sh ci/run.sh;
fi
# Install kcov dependencies
# FIXME: busted!
#- if [ "$TARGET" == "x86_64-unknown-linux-gnu" ]; then
# wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz;
# tar xzf master.tar.gz && mkdir kcov-master/build && cd kcov-master/build && cmake .. && make;
# sudo make install && cd ../..;
# echo "Uploading coverage... $TRAVIS_JOB_ID";
# find target/debug/deps/*-* -executable -exec kcov --verify --coveralls-id=$TRAVIS_JOB_ID --exclude-pattern=/.cargo target/kcov '{}' \;;
# find target/debug/*-* -executable ! -name multirust-rs -exec kcov --verify --coveralls-id=$TRAVIS_JOB_ID --exclude-pattern=/.cargo target/kcov '{}' \;;
# fi
# prepare for a deploy if this will be a deployment
- bash ci/prepare-deploy-travis.sh
deploy:
- provider: s3
bucket: dev-static-rust-lang-org
skip_cleanup: true
local_dir: deploy
upload_dir: rustup
acl: public_read
region: us-west-1
access_key_id: AKIAIZT5ZFS5N2VNRGPA
secret_access_key:
secure: "CGFWEhkk6siQxW24zJqlXRC4WLQPqXRJ5Rqa6rQNErotorRUn0DnPB+4zYW4KvMTDkv5pPwEv8P6b0IwbY8ZrS7ChfZ6t89xTvuklxsb8PlMwaDXWqkP5cCBT4B/e1S81xSI7ptkQ7Te5bcVbPMVE3MuGYtzhgIaYu+RZMLHSteY2TGnHid7ErmZKmvGoRqootEHYRo4Pv2s2ydZaalzrt8I5uGQPzesJc2T8xWS8VcFAGJTy4p59h5d6Btlo2a5L3Oc8kMLDzsxzwBbrNXQjF7oLZw7g1uf1A7iBrJGsv61GCnggl4+gtEt/BFQ8mtknBLXv3kXBfvrj35YnHAZosZWufSOgsQ9HB7ELjVhRhGRFX2BNKH1Gm/qM0j7WenD3vhOCTzMW21xqEvgY7+KIvyb9XLla7du/0/rZnDoBnCbZNpBOU5NqOV0y6MN6NDL5g168N7M30BeEEcJjbLEXtUTlCp/6jzZj3frDezJNJypniqwRfacf0yKNykVsnpqpcPmQfvxk2I/1BjdukLM5WifAgTEy9IG2/PBUIWr5ikAlhpACxmuKrlExJpOmZRMRjjRjI8tw8bSKu00SbeYT6PO0xazP9oJYKtWi5vkvM9U4R7udeYHTJFAMkeASpOO4Ss6f+dXQzm7OWqFu07Ffm9zHh+WX95PXonlzauEQ1I="
on:
branch: stable
# FIXME: I don't know if this really works
after_deploy:
- aws cloudfront create-invalidation --paths "rustup/$TARGET/* rustup/dev/$TARGET/* rustup/www/* rustup/dev/www/* rustup/* rustup/dev/*"