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.
This commit is contained in:
parent
3b4d54ab88
commit
500076e141
9 changed files with 84 additions and 23 deletions
|
@ -12,10 +12,11 @@ matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
# Linux builders, all docker images
|
# Linux builders, all docker images
|
||||||
- env: IMAGE=android DEPLOY=1
|
- env: IMAGE=arm-android
|
||||||
- env: IMAGE=armhf-gnu
|
- env: IMAGE=armhf-gnu
|
||||||
- env: IMAGE=cross DEPLOY=1
|
- env: IMAGE=cross DEPLOY=1
|
||||||
- env: IMAGE=linux-tested-targets DEPLOY=1
|
- env: IMAGE=linux-tested-targets DEPLOY=1
|
||||||
|
- env: IMAGE=dist-android DEPLOY=1
|
||||||
- env: IMAGE=dist-arm-linux DEPLOY=1
|
- env: IMAGE=dist-arm-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
|
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-freebsd DEPLOY=1
|
- env: IMAGE=dist-freebsd DEPLOY=1
|
||||||
|
|
|
@ -198,10 +198,6 @@ $ pacman -R cmake && pacman -S mingw-w64-x86_64-cmake
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.contains("arm-linux-android") {
|
|
||||||
need_cmd("adb".as_ref());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for host in build.flags.host.iter() {
|
for host in build.flags.host.iter() {
|
||||||
|
|
46
src/ci/docker/arm-android/Dockerfile
Normal file
46
src/ci/docker/arm-android/Dockerfile
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN dpkg --add-architecture i386 && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
file \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
python2.7 \
|
||||||
|
git \
|
||||||
|
cmake \
|
||||||
|
unzip \
|
||||||
|
expect \
|
||||||
|
openjdk-9-jre \
|
||||||
|
sudo \
|
||||||
|
libstdc++6:i386 \
|
||||||
|
xz-utils \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
WORKDIR /android/
|
||||||
|
ENV PATH=$PATH:/android/ndk-arm-9/bin:/android/sdk/tools:/android/sdk/platform-tools
|
||||||
|
|
||||||
|
COPY install-ndk.sh install-sdk.sh accept-licenses.sh /android/
|
||||||
|
RUN sh /android/install-ndk.sh
|
||||||
|
RUN sh /android/install-sdk.sh
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
|
||||||
|
COPY start-emulator.sh /android/
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/android/start-emulator.sh"]
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-24-sccache-x86_64-unknown-linux-gnu && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS \
|
||||||
|
--target=arm-linux-androideabi \
|
||||||
|
--arm-linux-androideabi-ndk=/android/ndk-arm-9
|
||||||
|
|
||||||
|
ENV SCRIPT python2.7 ../x.py test --target arm-linux-androideabi
|
33
src/ci/docker/arm-android/install-ndk.sh
Normal file
33
src/ci/docker/arm-android/install-ndk.sh
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
cpgdb() {
|
||||||
|
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb /android/$1/bin/$2-gdb
|
||||||
|
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb-orig /android/$1/bin/gdb-orig
|
||||||
|
cp -r android-ndk-r11c/prebuilt/linux-x86_64/share /android/$1/share
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prep the Android NDK
|
||||||
|
#
|
||||||
|
# See https://github.com/servo/servo/wiki/Building-for-Android
|
||||||
|
curl -O https://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip
|
||||||
|
unzip -q android-ndk-r11c-linux-x86_64.zip
|
||||||
|
bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
|
||||||
|
--platform=android-9 \
|
||||||
|
--toolchain=arm-linux-androideabi-4.9 \
|
||||||
|
--install-dir=/android/ndk-arm-9 \
|
||||||
|
--ndk-dir=/android/android-ndk-r11c \
|
||||||
|
--arch=arm
|
||||||
|
cpgdb ndk-arm-9 arm-linux-androideabi
|
||||||
|
|
||||||
|
rm -rf ./android-ndk-r11c-linux-x86_64.zip ./android-ndk-r11c
|
|
@ -23,17 +23,13 @@ RUN dpkg --add-architecture i386 && \
|
||||||
WORKDIR /android/
|
WORKDIR /android/
|
||||||
ENV PATH=$PATH:/android/ndk-arm-9/bin:/android/sdk/tools:/android/sdk/platform-tools
|
ENV PATH=$PATH:/android/ndk-arm-9/bin:/android/sdk/tools:/android/sdk/platform-tools
|
||||||
|
|
||||||
COPY install-ndk.sh install-sdk.sh accept-licenses.sh /android/
|
COPY install-ndk.sh /android/
|
||||||
RUN sh /android/install-ndk.sh
|
RUN sh /android/install-ndk.sh
|
||||||
RUN sh /android/install-sdk.sh
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
rm dumb-init_*.deb
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
COPY start-emulator.sh /android/
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/android/start-emulator.sh"]
|
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
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 \
|
||||||
--i686-linux-android-ndk=/android/ndk-x86-9 \
|
--i686-linux-android-ndk=/android/ndk-x86-9 \
|
||||||
--aarch64-linux-android-ndk=/android/ndk-aarch64
|
--aarch64-linux-android-ndk=/android/ndk-aarch64
|
||||||
|
|
||||||
# Just a smoke test in dist to see if this works for now, we should expand this
|
ENV SCRIPT python2.7 ../x.py dist --target $TARGETS
|
||||||
# to all the targets above eventually.
|
|
||||||
ENV SCRIPT \
|
|
||||||
python2.7 ../x.py test --target arm-linux-androideabi && \
|
|
||||||
python2.7 ../x.py dist --target $TARGETS
|
|
|
@ -11,12 +11,6 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
cpgdb() {
|
|
||||||
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb /android/$1/bin/$2-gdb
|
|
||||||
cp android-ndk-r11c/prebuilt/linux-x86_64/bin/gdb-orig /android/$1/bin/gdb-orig
|
|
||||||
cp -r android-ndk-r11c/prebuilt/linux-x86_64/share /android/$1/share
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prep the Android NDK
|
# Prep the Android NDK
|
||||||
#
|
#
|
||||||
# See https://github.com/servo/servo/wiki/Building-for-Android
|
# See https://github.com/servo/servo/wiki/Building-for-Android
|
||||||
|
@ -28,7 +22,6 @@ bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
|
||||||
--install-dir=/android/ndk-arm-9 \
|
--install-dir=/android/ndk-arm-9 \
|
||||||
--ndk-dir=/android/android-ndk-r11c \
|
--ndk-dir=/android/android-ndk-r11c \
|
||||||
--arch=arm
|
--arch=arm
|
||||||
cpgdb ndk-arm-9 arm-linux-androideabi
|
|
||||||
bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
|
bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
|
||||||
--platform=android-21 \
|
--platform=android-21 \
|
||||||
--toolchain=aarch64-linux-android-4.9 \
|
--toolchain=aarch64-linux-android-4.9 \
|
Loading…
Add table
Reference in a new issue