1#!/bin/bash 2 3set -ex 4 5[ -n "${ANDROID_NDK}" ] 6 7_https_amazon_aws=https://ossci-android.s3.amazonaws.com 8 9apt-get update 10apt-get install -y --no-install-recommends autotools-dev autoconf unzip 11apt-get autoclean && apt-get clean 12rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 13 14pushd /tmp 15curl -Os --retry 3 $_https_amazon_aws/android-ndk-${ANDROID_NDK}-linux-x86_64.zip 16popd 17_ndk_dir=/opt/ndk 18mkdir -p "$_ndk_dir" 19unzip -qo /tmp/android*.zip -d "$_ndk_dir" 20_versioned_dir=$(find "$_ndk_dir/" -mindepth 1 -maxdepth 1 -type d) 21mv "$_versioned_dir"/* "$_ndk_dir"/ 22rmdir "$_versioned_dir" 23rm -rf /tmp/* 24 25# Install OpenJDK 26# https://hub.docker.com/r/picoded/ubuntu-openjdk-8-jdk/dockerfile/ 27 28sudo apt-get update && \ 29 apt-get install -y openjdk-8-jdk && \ 30 apt-get install -y ant && \ 31 apt-get clean && \ 32 rm -rf /var/lib/apt/lists/* && \ 33 rm -rf /var/cache/oracle-jdk8-installer; 34 35# Fix certificate issues, found as of 36# https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/983302 37 38sudo apt-get update && \ 39 apt-get install -y ca-certificates-java && \ 40 apt-get clean && \ 41 update-ca-certificates -f && \ 42 rm -rf /var/lib/apt/lists/* && \ 43 rm -rf /var/cache/oracle-jdk8-installer; 44 45export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ 46 47# Installing android sdk 48# https://github.com/circleci/circleci-images/blob/staging/android/Dockerfile.m4 49 50_tmp_sdk_zip=/tmp/android-sdk-linux.zip 51_android_home=/opt/android/sdk 52 53rm -rf $_android_home 54sudo mkdir -p $_android_home 55curl --silent --show-error --location --fail --retry 3 --output /tmp/android-sdk-linux.zip $_https_amazon_aws/android-sdk-linux-tools3859397-build-tools2803-2902-platforms28-29.zip 56sudo unzip -q $_tmp_sdk_zip -d $_android_home 57rm $_tmp_sdk_zip 58 59sudo chmod -R 777 $_android_home 60 61export ANDROID_HOME=$_android_home 62export ADB_INSTALL_TIMEOUT=120 63 64export PATH="${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${PATH}" 65echo "PATH:${PATH}" 66 67# Installing Gradle 68echo "GRADLE_VERSION:${GRADLE_VERSION}" 69_gradle_home=/opt/gradle 70sudo rm -rf $gradle_home 71sudo mkdir -p $_gradle_home 72 73curl --silent --output /tmp/gradle.zip --retry 3 $_https_amazon_aws/gradle-${GRADLE_VERSION}-bin.zip 74 75sudo unzip -q /tmp/gradle.zip -d $_gradle_home 76rm /tmp/gradle.zip 77 78sudo chmod -R 777 $_gradle_home 79 80export GRADLE_HOME=$_gradle_home/gradle-$GRADLE_VERSION 81alias gradle="${GRADLE_HOME}/bin/gradle" 82 83export PATH="${GRADLE_HOME}/bin/:${PATH}" 84echo "PATH:${PATH}" 85 86gradle --version 87 88mkdir /var/lib/jenkins/gradledeps 89cp build.gradle /var/lib/jenkins/gradledeps 90cp AndroidManifest.xml /var/lib/jenkins/gradledeps 91 92pushd /var/lib/jenkins 93 94export GRADLE_LOCAL_PROPERTIES=gradledeps/local.properties 95rm -f $GRADLE_LOCAL_PROPERTIES 96echo "sdk.dir=/opt/android/sdk" >> $GRADLE_LOCAL_PROPERTIES 97echo "ndk.dir=/opt/ndk" >> $GRADLE_LOCAL_PROPERTIES 98 99chown -R jenkins /var/lib/jenkins/gradledeps 100chgrp -R jenkins /var/lib/jenkins/gradledeps 101 102sudo -H -u jenkins $GRADLE_HOME/bin/gradle -Pandroid.useAndroidX=true -p /var/lib/jenkins/gradledeps -g /var/lib/jenkins/.gradle --refresh-dependencies --debug --stacktrace assemble 103 104chown -R jenkins /var/lib/jenkins/.gradle 105chgrp -R jenkins /var/lib/jenkins/.gradle 106 107popd 108 109rm -rf /var/lib/jenkins/.gradle/daemon 110 111# Cache vision models used by the test 112source "$(dirname "${BASH_SOURCE[0]}")/cache_vision_models.sh" 113