Skip to content

Commit 500076e

Browse files
committed
travis: Split Android into dist/test images
PRs can't land againt beta right now because the android bot is filling up on disk space. I don't really know what's going on but the android bot is the longest one to run anyway so it'll benefit from being split up regardless.
1 parent 3b4d54a commit 500076e

File tree

9 files changed

+84
-23
lines changed

9 files changed

+84
-23
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ matrix:
1212
fast_finish: true
1313
include:
1414
# Linux builders, all docker images
15-
- env: IMAGE=android DEPLOY=1
15+
- env: IMAGE=arm-android
1616
- env: IMAGE=armhf-gnu
1717
- env: IMAGE=cross DEPLOY=1
1818
- env: IMAGE=linux-tested-targets DEPLOY=1
19+
- env: IMAGE=dist-android DEPLOY=1
1920
- env: IMAGE=dist-arm-linux DEPLOY=1
2021
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
2122
- env: IMAGE=dist-freebsd DEPLOY=1

src/bootstrap/sanity.rs

-4
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,6 @@ $ pacman -R cmake && pacman -S mingw-w64-x86_64-cmake
198198
");
199199
}
200200
}
201-
202-
if target.contains("arm-linux-android") {
203-
need_cmd("adb".as_ref());
204-
}
205201
}
206202

207203
for host in build.flags.host.iter() {

src/ci/docker/arm-android/Dockerfile

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
FROM ubuntu:16.04
2+
3+
RUN dpkg --add-architecture i386 && \
4+
apt-get update && \
5+
apt-get install -y --no-install-recommends \
6+
g++ \
7+
make \
8+
file \
9+
curl \
10+
ca-certificates \
11+
python2.7 \
12+
git \
13+
cmake \
14+
unzip \
15+
expect \
16+
openjdk-9-jre \
17+
sudo \
18+
libstdc++6:i386 \
19+
xz-utils \
20+
libssl-dev \
21+
pkg-config
22+
23+
WORKDIR /android/
24+
ENV PATH=$PATH:/android/ndk-arm-9/bin:/android/sdk/tools:/android/sdk/platform-tools
25+
26+
COPY install-ndk.sh install-sdk.sh accept-licenses.sh /android/
27+
RUN sh /android/install-ndk.sh
28+
RUN sh /android/install-sdk.sh
29+
30+
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
31+
dpkg -i dumb-init_*.deb && \
32+
rm dumb-init_*.deb
33+
34+
COPY start-emulator.sh /android/
35+
36+
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/android/start-emulator.sh"]
37+
38+
RUN curl -o /usr/local/bin/sccache \
39+
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-24-sccache-x86_64-unknown-linux-gnu && \
40+
chmod +x /usr/local/bin/sccache
41+
42+
ENV RUST_CONFIGURE_ARGS \
43+
--target=arm-linux-androideabi \
44+
--arm-linux-androideabi-ndk=/android/ndk-arm-9
45+
46+
ENV SCRIPT python2.7 ../x.py test --target arm-linux-androideabi
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/sh
2+
# Copyright 2016 The Rust Project Developers. See the COPYRIGHT
3+
# file at the top-level directory of this distribution and at
4+
# http://rust-lang.org/COPYRIGHT.
5+
#
6+
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7+
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8+
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9+
# option. This file may not be copied, modified, or distributed
10+
# except according to those terms.
11+
12+
set -ex
13+
14+
cpgdb() {
15+
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb /android/$1/bin/$2-gdb
16+
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb-orig /android/$1/bin/gdb-orig
17+
cp -r android-ndk-r11c/prebuilt/linux-x86_64/share /android/$1/share
18+
}
19+
20+
# Prep the Android NDK
21+
#
22+
# See https://github.com/servo/servo/wiki/Building-for-Android
23+
curl -O https://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip
24+
unzip -q android-ndk-r11c-linux-x86_64.zip
25+
bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
26+
--platform=android-9 \
27+
--toolchain=arm-linux-androideabi-4.9 \
28+
--install-dir=/android/ndk-arm-9 \
29+
--ndk-dir=/android/android-ndk-r11c \
30+
--arch=arm
31+
cpgdb ndk-arm-9 arm-linux-androideabi
32+
33+
rm -rf ./android-ndk-r11c-linux-x86_64.zip ./android-ndk-r11c

src/ci/docker/android/Dockerfile renamed to src/ci/docker/dist-android/Dockerfile

+3-11
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,13 @@ RUN dpkg --add-architecture i386 && \
2323
WORKDIR /android/
2424
ENV PATH=$PATH:/android/ndk-arm-9/bin:/android/sdk/tools:/android/sdk/platform-tools
2525

26-
COPY install-ndk.sh install-sdk.sh accept-licenses.sh /android/
26+
COPY install-ndk.sh /android/
2727
RUN sh /android/install-ndk.sh
28-
RUN sh /android/install-sdk.sh
2928

3029
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
3130
dpkg -i dumb-init_*.deb && \
3231
rm dumb-init_*.deb
33-
34-
COPY start-emulator.sh /android/
35-
36-
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/android/start-emulator.sh"]
32+
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
3733

3834
RUN curl -o /usr/local/bin/sccache \
3935
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
@@ -51,8 +47,4 @@ ENV RUST_CONFIGURE_ARGS \
5147
--i686-linux-android-ndk=/android/ndk-x86-9 \
5248
--aarch64-linux-android-ndk=/android/ndk-aarch64
5349

54-
# Just a smoke test in dist to see if this works for now, we should expand this
55-
# to all the targets above eventually.
56-
ENV SCRIPT \
57-
python2.7 ../x.py test --target arm-linux-androideabi && \
58-
python2.7 ../x.py dist --target $TARGETS
50+
ENV SCRIPT python2.7 ../x.py dist --target $TARGETS

src/ci/docker/android/install-ndk.sh renamed to src/ci/docker/dist-android/install-ndk.sh

-7
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@
1111

1212
set -ex
1313

14-
cpgdb() {
15-
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb /android/$1/bin/$2-gdb
16-
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb-orig /android/$1/bin/gdb-orig
17-
cp -r android-ndk-r11c/prebuilt/linux-x86_64/share /android/$1/share
18-
}
19-
2014
# Prep the Android NDK
2115
#
2216
# See https://github.com/servo/servo/wiki/Building-for-Android
@@ -28,7 +22,6 @@ bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
2822
--install-dir=/android/ndk-arm-9 \
2923
--ndk-dir=/android/android-ndk-r11c \
3024
--arch=arm
31-
cpgdb ndk-arm-9 arm-linux-androideabi
3225
bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
3326
--platform=android-21 \
3427
--toolchain=aarch64-linux-android-4.9 \

0 commit comments

Comments
 (0)