xref: /aosp_15_r20/external/conscrypt/scripts/publishLocalUber.sh (revision cd0cc2e34ba52cdf454361820a14d744e4bd531d)
1*cd0cc2e3SAndroid Build Coastguard Worker#! /bin/bash
2*cd0cc2e3SAndroid Build Coastguard Worker#
3*cd0cc2e3SAndroid Build Coastguard Worker#  Copyright (C) 2024 The Android Open Source Project
4*cd0cc2e3SAndroid Build Coastguard Worker#
5*cd0cc2e3SAndroid Build Coastguard Worker#  Licensed under the Apache License, Version 2.0 (the "License");
6*cd0cc2e3SAndroid Build Coastguard Worker#  you may not use this file except in compliance with the License.
7*cd0cc2e3SAndroid Build Coastguard Worker#  You may obtain a copy of the License at
8*cd0cc2e3SAndroid Build Coastguard Worker#
9*cd0cc2e3SAndroid Build Coastguard Worker#       http://www.apache.org/licenses/LICENSE-2.0
10*cd0cc2e3SAndroid Build Coastguard Worker#
11*cd0cc2e3SAndroid Build Coastguard Worker#  Unless required by applicable law or agreed to in writing, software
12*cd0cc2e3SAndroid Build Coastguard Worker#  distributed under the License is distributed on an "AS IS" BASIS,
13*cd0cc2e3SAndroid Build Coastguard Worker#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*cd0cc2e3SAndroid Build Coastguard Worker#  See the License for the specific language governing permissions and
15*cd0cc2e3SAndroid Build Coastguard Worker#  limitations under the License.
16*cd0cc2e3SAndroid Build Coastguard Worker
17*cd0cc2e3SAndroid Build Coastguard Worker# Builds and locally publishes an uber jar for local architectures.
18*cd0cc2e3SAndroid Build Coastguard Worker#
19*cd0cc2e3SAndroid Build Coastguard Worker# Normally an uber jar contains JNI binaries for all supported
20*cd0cc2e3SAndroid Build Coastguard Worker# platforms, but that requires those binaries to be built somewhere.
21*cd0cc2e3SAndroid Build Coastguard Worker# This script infers the binary types that can be built locally and
22*cd0cc2e3SAndroid Build Coastguard Worker# adds only those to the jar.  This allows end to end testing of the
23*cd0cc2e3SAndroid Build Coastguard Worker# build process as well as testing of the uberjar against multiple
24*cd0cc2e3SAndroid Build Coastguard Worker# Java versions (see testLocalUber.sh)
25*cd0cc2e3SAndroid Build Coastguard Worker
26*cd0cc2e3SAndroid Build Coastguard Worker
27*cd0cc2e3SAndroid Build Coastguard WorkerCONSCRYPT_HOME="${CONSCRYPT_HOME:-$HOME/src/conscrypt}"
28*cd0cc2e3SAndroid Build Coastguard WorkerBUILD="$CONSCRYPT_HOME/build.gradle"
29*cd0cc2e3SAndroid Build Coastguard WorkerM2_REPO="${M2_REPO:-$HOME/.m2/repository}"
30*cd0cc2e3SAndroid Build Coastguard WorkerPUBLISH_DIR="${M2_REPO}/org/conscrypt"
31*cd0cc2e3SAndroid Build Coastguard Worker
32*cd0cc2e3SAndroid Build Coastguard Workerdie() {
33*cd0cc2e3SAndroid Build Coastguard Worker	echo "*** " $@
34*cd0cc2e3SAndroid Build Coastguard Worker	exit 1
35*cd0cc2e3SAndroid Build Coastguard Worker}
36*cd0cc2e3SAndroid Build Coastguard Worker
37*cd0cc2e3SAndroid Build Coastguard Workercase $(uname -s) in
38*cd0cc2e3SAndroid Build Coastguard Worker	Darwin)
39*cd0cc2e3SAndroid Build Coastguard Worker		CLASSIFIERS="osx-x86_64,osx-aarch_64"
40*cd0cc2e3SAndroid Build Coastguard Worker		;;
41*cd0cc2e3SAndroid Build Coastguard Worker	Linux)
42*cd0cc2e3SAndroid Build Coastguard Worker		CLASSIFIERS="linux-x86_64"
43*cd0cc2e3SAndroid Build Coastguard Worker		;;
44*cd0cc2e3SAndroid Build Coastguard Worker	*)
45*cd0cc2e3SAndroid Build Coastguard Worker		die "TODO: Finish this switch statement"
46*cd0cc2e3SAndroid Build Coastguard Worker		;;
47*cd0cc2e3SAndroid Build Coastguard Workeresac
48*cd0cc2e3SAndroid Build Coastguard Worker
49*cd0cc2e3SAndroid Build Coastguard Workertest -f "$BUILD" || die "Conscrypt build file not found.  Check CONSCRYPT_HOME."
50*cd0cc2e3SAndroid Build Coastguard Worker
51*cd0cc2e3SAndroid Build Coastguard WorkerVERSION=$(sed -nE 's/^ *version *= *"(.*)"/\1/p' $BUILD)
52*cd0cc2e3SAndroid Build Coastguard Workertest "$VERSION" || die "Unable to figure out Conscrypt version."
53*cd0cc2e3SAndroid Build Coastguard Workerecho "Conscrypt version ${VERSION}."
54*cd0cc2e3SAndroid Build Coastguard Worker
55*cd0cc2e3SAndroid Build Coastguard WorkerUBERJAR="$PUBLISH_DIR/conscrypt-openjdk-uber/$VERSION/conscrypt-openjdk-uber-${VERSION}.jar"
56*cd0cc2e3SAndroid Build Coastguard Worker
57*cd0cc2e3SAndroid Build Coastguard Workercd "$CONSCRYPT_HOME"
58*cd0cc2e3SAndroid Build Coastguard Worker./gradlew :conscrypt-openjdk:publishToMavenLocal \
59*cd0cc2e3SAndroid Build Coastguard Worker		  --console=plain
60*cd0cc2e3SAndroid Build Coastguard Worker./gradlew :conscrypt-openjdk-uber:publishToMavenLocal \
61*cd0cc2e3SAndroid Build Coastguard Worker		  -Dorg.conscrypt.openjdk.uberJarClassifiers="$CLASSIFIERS" \
62*cd0cc2e3SAndroid Build Coastguard Worker		  -Dorg.conscrypt.openjdk.buildUberJar=true \
63*cd0cc2e3SAndroid Build Coastguard Worker		  --console=plain
64*cd0cc2e3SAndroid Build Coastguard Worker
65*cd0cc2e3SAndroid Build Coastguard Workertest -f "$UBERJAR" || die "Uber jar not published."
66*cd0cc2e3SAndroid Build Coastguard Workerls -l "$UBERJAR"
67