xref: /aosp_15_r20/external/robolectric/scripts/install-android-prebuilt.sh (revision e6ba16074e6af37d123cb567d575f496bf0a58ee)
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