1*e6ba1607SAndroid Build Coastguard Worker#!/bin/bash 2*e6ba1607SAndroid Build Coastguard Worker# 3*e6ba1607SAndroid Build Coastguard Worker# This script signs already built AOSP Android jars, and installs them in your local 4*e6ba1607SAndroid Build Coastguard Worker# Maven repository. See: http://source.android.com/source/building.html for 5*e6ba1607SAndroid Build Coastguard Worker# more information on building AOSP. 6*e6ba1607SAndroid Build Coastguard Worker# 7*e6ba1607SAndroid Build Coastguard Worker# Usage: 8*e6ba1607SAndroid Build Coastguard Worker# build-android-prebuilt.sh <jar directory path> <android version> <robolectric version> 9*e6ba1607SAndroid Build Coastguard Worker# 10*e6ba1607SAndroid Build Coastguard Worker 11*e6ba1607SAndroid Build Coastguard Workerset -ex 12*e6ba1607SAndroid Build Coastguard Worker 13*e6ba1607SAndroid Build Coastguard Workerfunction usage() { 14*e6ba1607SAndroid Build Coastguard Worker echo "Usage: ${0} <jar dir path> <android-version> <robolectric-sub-version>" 15*e6ba1607SAndroid Build Coastguard Worker} 16*e6ba1607SAndroid Build Coastguard Worker 17*e6ba1607SAndroid Build Coastguard Workerif [[ $# -ne 3 ]]; then 18*e6ba1607SAndroid Build Coastguard Worker usage 19*e6ba1607SAndroid Build Coastguard Worker exit 1 20*e6ba1607SAndroid Build Coastguard Workerfi 21*e6ba1607SAndroid Build Coastguard Worker 22*e6ba1607SAndroid Build Coastguard WorkerJAR_DIR=$(readlink -e "$1") 23*e6ba1607SAndroid Build Coastguard WorkerANDROID_VERSION="$2" 24*e6ba1607SAndroid Build Coastguard WorkerROBOLECTRIC_SUB_VERSION="$3" 25*e6ba1607SAndroid Build Coastguard Worker 26*e6ba1607SAndroid Build Coastguard WorkerSCRIPT_DIR=$(cd $(dirname "$0"); pwd) 27*e6ba1607SAndroid Build Coastguard Worker 28*e6ba1607SAndroid Build Coastguard WorkerROBOLECTRIC_VERSION=${ANDROID_VERSION}-robolectric-${ROBOLECTRIC_SUB_VERSION} 29*e6ba1607SAndroid Build Coastguard Worker 30*e6ba1607SAndroid Build Coastguard Worker# Final artifact names 31*e6ba1607SAndroid Build Coastguard WorkerANDROID_ALL=android-all-${ROBOLECTRIC_VERSION}.jar 32*e6ba1607SAndroid Build Coastguard WorkerANDROID_ALL_POM=android-all-${ROBOLECTRIC_VERSION}.pom 33*e6ba1607SAndroid Build Coastguard WorkerANDROID_ALL_SRC=android-all-${ROBOLECTRIC_VERSION}-sources.jar 34*e6ba1607SAndroid Build Coastguard WorkerANDROID_ALL_DOC=android-all-${ROBOLECTRIC_VERSION}-javadoc.jar 35*e6ba1607SAndroid Build Coastguard WorkerANDROID_BUNDLE=android-all-${ROBOLECTRIC_VERSION}-bundle.jar 36*e6ba1607SAndroid Build Coastguard Worker 37*e6ba1607SAndroid Build Coastguard Workergenerate_empty_sources() { 38*e6ba1607SAndroid Build Coastguard Worker TMP=`mktemp --directory` 39*e6ba1607SAndroid Build Coastguard Worker cd ${TMP} 40*e6ba1607SAndroid Build Coastguard Worker jar cf ${JAR_DIR}/${ANDROID_ALL_SRC} . 41*e6ba1607SAndroid Build Coastguard Worker cd ${JAR_DIR}; rm -rf ${TMP} 42*e6ba1607SAndroid Build Coastguard Worker} 43*e6ba1607SAndroid Build Coastguard Worker 44*e6ba1607SAndroid Build Coastguard Workergenerate_empty_javadoc() { 45*e6ba1607SAndroid Build Coastguard Worker TMP=`mktemp --directory` 46*e6ba1607SAndroid Build Coastguard Worker cd ${TMP} 47*e6ba1607SAndroid Build Coastguard Worker jar cf ${JAR_DIR}/${ANDROID_ALL_DOC} . 48*e6ba1607SAndroid Build Coastguard Worker cd ${JAR_DIR}; rm -rf ${TMP} 49*e6ba1607SAndroid Build Coastguard Worker} 50*e6ba1607SAndroid Build Coastguard Worker 51*e6ba1607SAndroid Build Coastguard Workerbuild_signed_packages() { 52*e6ba1607SAndroid Build Coastguard Worker echo "Robolectric: Building android-all.pom..." 53*e6ba1607SAndroid Build Coastguard Worker sed s/VERSION/${ROBOLECTRIC_VERSION}/ ${SCRIPT_DIR}/pom_template.xml | sed s/ARTIFACT_ID/android-all/ > ${JAR_DIR}/${ANDROID_ALL_POM} 54*e6ba1607SAndroid Build Coastguard Worker 55*e6ba1607SAndroid Build Coastguard Worker echo "Robolectric: Signing files with gpg..." 56*e6ba1607SAndroid Build Coastguard Worker for ext in ".jar" "-javadoc.jar" "-sources.jar" ".pom"; do 57*e6ba1607SAndroid Build Coastguard Worker ( cd ${JAR_DIR} && gpg -ab android-all-${ROBOLECTRIC_VERSION}$ext ) 58*e6ba1607SAndroid Build Coastguard Worker done 59*e6ba1607SAndroid Build Coastguard Worker 60*e6ba1607SAndroid Build Coastguard Worker echo "Robolectric: Creating bundle for Sonatype upload..." 61*e6ba1607SAndroid Build Coastguard Worker cd ${JAR_DIR}; jar cf ${ANDROID_BUNDLE} *.jar *.pom *.asc 62*e6ba1607SAndroid Build Coastguard Worker} 63*e6ba1607SAndroid Build Coastguard Worker 64*e6ba1607SAndroid Build Coastguard Workermavenize() { 65*e6ba1607SAndroid Build Coastguard Worker local FILE_NAME_BASE=android-all-${ROBOLECTRIC_VERSION} 66*e6ba1607SAndroid Build Coastguard Worker mvn install:install-file \ 67*e6ba1607SAndroid Build Coastguard Worker -Dfile=${JAR_DIR}/${FILE_NAME_BASE}.jar \ 68*e6ba1607SAndroid Build Coastguard Worker -DgroupId=org.robolectric \ 69*e6ba1607SAndroid Build Coastguard Worker -DartifactId=android-all \ 70*e6ba1607SAndroid Build Coastguard Worker -Dversion=${ROBOLECTRIC_VERSION} \ 71*e6ba1607SAndroid Build Coastguard Worker -Dpackaging=jar 72*e6ba1607SAndroid Build Coastguard Worker 73*e6ba1607SAndroid Build Coastguard Worker mvn install:install-file \ 74*e6ba1607SAndroid Build Coastguard Worker -Dfile=${JAR_DIR}/${FILE_NAME_BASE}-sources.jar \ 75*e6ba1607SAndroid Build Coastguard Worker -DgroupId=org.robolectric \ 76*e6ba1607SAndroid Build Coastguard Worker -DartifactId=android-all \ 77*e6ba1607SAndroid Build Coastguard Worker -Dversion=${ROBOLECTRIC_VERSION} \ 78*e6ba1607SAndroid Build Coastguard Worker -Dpackaging=jar \ 79*e6ba1607SAndroid Build Coastguard Worker -Dclassifier=sources 80*e6ba1607SAndroid Build Coastguard Worker 81*e6ba1607SAndroid Build Coastguard Worker mvn install:install-file \ 82*e6ba1607SAndroid Build Coastguard Worker -Dfile=${JAR_DIR}/${FILE_NAME_BASE}-javadoc.jar \ 83*e6ba1607SAndroid Build Coastguard Worker -DgroupId=org.robolectric \ 84*e6ba1607SAndroid Build Coastguard Worker -DartifactId=android-all \ 85*e6ba1607SAndroid Build Coastguard Worker -Dversion=${ROBOLECTRIC_VERSION} \ 86*e6ba1607SAndroid Build Coastguard Worker -Dpackaging=jar \ 87*e6ba1607SAndroid Build Coastguard Worker -Dclassifier=javadoc 88*e6ba1607SAndroid Build Coastguard Worker} 89*e6ba1607SAndroid Build Coastguard Worker 90*e6ba1607SAndroid Build Coastguard Workergenerate_empty_javadoc 91*e6ba1607SAndroid Build Coastguard Workergenerate_empty_sources 92*e6ba1607SAndroid Build Coastguard Workerbuild_signed_packages 93*e6ba1607SAndroid Build Coastguard Workermavenize 94*e6ba1607SAndroid Build Coastguard Worker 95*e6ba1607SAndroid Build Coastguard Workerecho "DONE!!" 96