Travis: use Android docker image for build

This should make it easier to make changes to our build environment.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2018-12-22 18:55:43 -08:00
parent f39b07dec3
commit f11f4dc139
3 changed files with 18 additions and 20 deletions

View file

@ -12,4 +12,4 @@ ls -lh $TRAVIS_BUILD_DIR/apk/*.apk
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
bash ./upload.sh $TRAVIS_BUILD_DIR/apk/*.apk
bash ./upload.sh $TRAVIS_BUILD_DIR/../subsurface-mobile-build-arm/build/outputs/apk/*.apk

View file

@ -6,14 +6,16 @@ git fetch --unshallow
git pull --tags
git describe
# Ugly, but keeps it running during the build
docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d ubuntu:bionic /bin/sleep 60m
docker exec -t builder apt-get update
# subsurface android build dependencies
docker exec -t builder apt-get install -y git cmake autoconf libtool-bin openjdk-8-jdk-headless wget unzip python bzip2 pkg-config
# Qt installer dependencies
docker exec -t builder apt-get install -y libx11-xcb1 libgl1-mesa-glx libglib2.0-0
# Inject cached 3pp's (if none exists in 3pp dir, we inject zero ones, and all is downloaded in the container)
# TODO: caching
#docker cp 3pp builder:/workspace
docker exec -t builder mkdir -p /workspace/3pp
# setup build dir on the host, not inside of the container
mkdir -p ../subsurface-mobile-build-arm
# this uses a custom built Ubuntu image that includes Qt for Android and
# Android NDK/SDK
# Running sleep to keep the container running during the build
PARENT="$( cd .. && pwd )"
docker run -v $PWD:/android/subsurface \
-v $PARENT/subsurface-mobile-build-arm:/android/subsurface-mobile-build-arm \
--name=builder \
-w /android \
-d dirkhh/android-builder:5.11.03 \
/bin/sleep 60m

View file

@ -3,13 +3,9 @@
set -x
set -e
# by running the build wrapper again we should be able to test newer
# versions of the dependencies even without updating the docker image
# (but of course having the right things in place will save a ton of time)
docker exec -e TRAVIS="$TRAVIS" -t builder subsurface/packaging/android/android-build-wrapper.sh
# Extract the built apk from the builder container
docker cp builder:/workspace/subsurface-mobile-build-arm/build/outputs/apk/ .
# TODO: Caching
# Yank Qt, android-sdk, android-ndk and other 3pp source tar balls out from the container and cache them.
#docker exec builder mkdir -p 3pp
#docker exec builder sh -c 'mv Qt android-sdk-linux android-ndk-* *.tar.gz *.tar.bz2 3pp/'
#docker cp builder:/workspace/3pp .
ls -l ../subsurface-mobile-build-arm/build/outputs/apk/