about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-02-27 14:53:12 -0800
committerAlex Crichton <alex@alexcrichton.com>2017-02-27 21:20:23 -0800
commit500076e141c3c750a41201cec523cf9e9dabf6aa (patch)
tree49bfc3830effb6603c9a7d800fea8ebe5f55f615
parent3b4d54ab88fd522b2f02d7079c601ddec047eba8 (diff)
downloadrust-500076e141c3c750a41201cec523cf9e9dabf6aa.tar.gz
rust-500076e141c3c750a41201cec523cf9e9dabf6aa.zip
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.
-rw-r--r--.travis.yml3
-rw-r--r--src/bootstrap/sanity.rs4
-rw-r--r--src/ci/docker/arm-android/Dockerfile46
-rwxr-xr-xsrc/ci/docker/arm-android/accept-licenses.sh (renamed from src/ci/docker/android/accept-licenses.sh)0
-rw-r--r--src/ci/docker/arm-android/install-ndk.sh33
-rw-r--r--src/ci/docker/arm-android/install-sdk.sh (renamed from src/ci/docker/android/install-sdk.sh)0
-rwxr-xr-xsrc/ci/docker/arm-android/start-emulator.sh (renamed from src/ci/docker/android/start-emulator.sh)0
-rw-r--r--src/ci/docker/dist-android/Dockerfile (renamed from src/ci/docker/android/Dockerfile)14
-rw-r--r--src/ci/docker/dist-android/install-ndk.sh (renamed from src/ci/docker/android/install-ndk.sh)7
9 files changed, 84 insertions, 23 deletions
diff --git a/.travis.yml b/.travis.yml
index 1e462362f53..442d02aca78 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,10 +12,11 @@ matrix:
   fast_finish: true
   include:
     # Linux builders, all docker images
-    - env: IMAGE=android DEPLOY=1
+    - env: IMAGE=arm-android
     - env: IMAGE=armhf-gnu
     - env: IMAGE=cross 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-armv7-aarch64-linux DEPLOY=1
     - env: IMAGE=dist-freebsd DEPLOY=1
diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
index 8e79c2d27d1..bc439d6f782 100644
--- a/src/bootstrap/sanity.rs
+++ b/src/bootstrap/sanity.rs
@@ -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() {
diff --git a/src/ci/docker/arm-android/Dockerfile b/src/ci/docker/arm-android/Dockerfile
new file mode 100644
index 00000000000..4c89ce12531
--- /dev/null
+++ b/src/ci/docker/arm-android/Dockerfile
@@ -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
diff --git a/src/ci/docker/android/accept-licenses.sh b/src/ci/docker/arm-android/accept-licenses.sh
index 8d8f60a5ec2..8d8f60a5ec2 100755
--- a/src/ci/docker/android/accept-licenses.sh
+++ b/src/ci/docker/arm-android/accept-licenses.sh
diff --git a/src/ci/docker/arm-android/install-ndk.sh b/src/ci/docker/arm-android/install-ndk.sh
new file mode 100644
index 00000000000..389ec062110
--- /dev/null
+++ b/src/ci/docker/arm-android/install-ndk.sh
@@ -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
diff --git a/src/ci/docker/android/install-sdk.sh b/src/ci/docker/arm-android/install-sdk.sh
index 2db1d46ba22..2db1d46ba22 100644
--- a/src/ci/docker/android/install-sdk.sh
+++ b/src/ci/docker/arm-android/install-sdk.sh
diff --git a/src/ci/docker/android/start-emulator.sh b/src/ci/docker/arm-android/start-emulator.sh
index 24c477d87f1..24c477d87f1 100755
--- a/src/ci/docker/android/start-emulator.sh
+++ b/src/ci/docker/arm-android/start-emulator.sh
diff --git a/src/ci/docker/android/Dockerfile b/src/ci/docker/dist-android/Dockerfile
index aa30dc12c4a..6d433cc1509 100644
--- a/src/ci/docker/android/Dockerfile
+++ b/src/ci/docker/dist-android/Dockerfile
@@ -23,17 +23,13 @@ RUN dpkg --add-architecture i386 && \
 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/
+COPY install-ndk.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"]
+ENTRYPOINT ["/usr/bin/dumb-init", "--"]
 
 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 && \
@@ -51,8 +47,4 @@ ENV RUST_CONFIGURE_ARGS \
       --i686-linux-android-ndk=/android/ndk-x86-9 \
       --aarch64-linux-android-ndk=/android/ndk-aarch64
 
-# Just a smoke test in dist to see if this works for now, we should expand this
-# to all the targets above eventually.
-ENV SCRIPT \
-  python2.7 ../x.py test --target arm-linux-androideabi && \
-  python2.7 ../x.py dist --target $TARGETS
+ENV SCRIPT python2.7 ../x.py dist --target $TARGETS
diff --git a/src/ci/docker/android/install-ndk.sh b/src/ci/docker/dist-android/install-ndk.sh
index 418ce69c5b1..19c1b94e784 100644
--- a/src/ci/docker/android/install-ndk.sh
+++ b/src/ci/docker/dist-android/install-ndk.sh
@@ -11,12 +11,6 @@
 
 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
@@ -28,7 +22,6 @@ bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
         --install-dir=/android/ndk-arm-9 \
         --ndk-dir=/android/android-ndk-r11c \
         --arch=arm
-cpgdb ndk-arm-9 arm-linux-androideabi
 bash android-ndk-r11c/build/tools/make-standalone-toolchain.sh \
         --platform=android-21 \
         --toolchain=aarch64-linux-android-4.9 \