1*e07d83d3SAndroid Build Coastguard Worker#!/bin/bash 2*e07d83d3SAndroid Build Coastguard Workerset -veux -o pipefail 3*e07d83d3SAndroid Build Coastguard Worker 4*e07d83d3SAndroid Build Coastguard Workerif [[ -f /VERSION ]]; then 5*e07d83d3SAndroid Build Coastguard Worker cat /VERSION 6*e07d83d3SAndroid Build Coastguard Workerfi 7*e07d83d3SAndroid Build Coastguard Worker 8*e07d83d3SAndroid Build Coastguard Workerreadonly GRPC_JAVA_DIR="$(cd "$(dirname "$0")"/../.. && pwd)" 9*e07d83d3SAndroid Build Coastguard Worker 10*e07d83d3SAndroid Build Coastguard Worker. "$GRPC_JAVA_DIR"/buildscripts/kokoro/kokoro.sh 11*e07d83d3SAndroid Build Coastguard Workertrap spongify_logs EXIT 12*e07d83d3SAndroid Build Coastguard Worker 13*e07d83d3SAndroid Build Coastguard Worker"$GRPC_JAVA_DIR"/buildscripts/build_docker.sh 14*e07d83d3SAndroid Build Coastguard Worker"$GRPC_JAVA_DIR"/buildscripts/run_in_docker.sh grpc-java-artifacts-x86 /grpc-java/buildscripts/build_artifacts_in_docker.sh 15*e07d83d3SAndroid Build Coastguard Worker 16*e07d83d3SAndroid Build Coastguard Worker# grpc-android, grpc-cronet and grpc-binder require the Android SDK, so build outside of Docker and 17*e07d83d3SAndroid Build Coastguard Worker# use --include-build for its grpc-core dependency 18*e07d83d3SAndroid Build Coastguard Workerecho y | ${ANDROID_HOME}/tools/bin/sdkmanager "build-tools;28.0.3" 19*e07d83d3SAndroid Build Coastguard Worker 20*e07d83d3SAndroid Build Coastguard Worker# The sdkmanager needs Java 8, but now we switch to 11 as the Android builds 21*e07d83d3SAndroid Build Coastguard Worker# require it 22*e07d83d3SAndroid Build Coastguard Workersudo update-java-alternatives --set java-1.11.0-openjdk-amd64 23*e07d83d3SAndroid Build Coastguard Workerunset JAVA_HOME 24*e07d83d3SAndroid Build Coastguard Worker 25*e07d83d3SAndroid Build Coastguard WorkerLOCAL_MVN_TEMP=$(mktemp -d) 26*e07d83d3SAndroid Build Coastguard WorkerGRADLE_FLAGS="-Pandroid.useAndroidX=true" 27*e07d83d3SAndroid Build Coastguard Workerpushd "$GRPC_JAVA_DIR/android" 28*e07d83d3SAndroid Build Coastguard Worker../gradlew publish \ 29*e07d83d3SAndroid Build Coastguard Worker -Dorg.gradle.parallel=false \ 30*e07d83d3SAndroid Build Coastguard Worker -PskipCodegen=true \ 31*e07d83d3SAndroid Build Coastguard Worker -PrepositoryDir="$LOCAL_MVN_TEMP" \ 32*e07d83d3SAndroid Build Coastguard Worker $GRADLE_FLAGS 33*e07d83d3SAndroid Build Coastguard Workerpopd 34*e07d83d3SAndroid Build Coastguard Worker 35*e07d83d3SAndroid Build Coastguard Workerpushd "$GRPC_JAVA_DIR/cronet" 36*e07d83d3SAndroid Build Coastguard Worker../gradlew publish \ 37*e07d83d3SAndroid Build Coastguard Worker -Dorg.gradle.parallel=false \ 38*e07d83d3SAndroid Build Coastguard Worker -PskipCodegen=true \ 39*e07d83d3SAndroid Build Coastguard Worker -PrepositoryDir="$LOCAL_MVN_TEMP" \ 40*e07d83d3SAndroid Build Coastguard Worker $GRADLE_FLAGS 41*e07d83d3SAndroid Build Coastguard Workerpopd 42*e07d83d3SAndroid Build Coastguard Worker 43*e07d83d3SAndroid Build Coastguard Workerpushd "$GRPC_JAVA_DIR/binder" 44*e07d83d3SAndroid Build Coastguard Worker../gradlew publish \ 45*e07d83d3SAndroid Build Coastguard Worker -Dorg.gradle.parallel=false \ 46*e07d83d3SAndroid Build Coastguard Worker -PskipCodegen=true \ 47*e07d83d3SAndroid Build Coastguard Worker -PrepositoryDir="$LOCAL_MVN_TEMP" \ 48*e07d83d3SAndroid Build Coastguard Worker $GRADLE_FLAGS 49*e07d83d3SAndroid Build Coastguard Workerpopd 50*e07d83d3SAndroid Build Coastguard Worker 51*e07d83d3SAndroid Build Coastguard Workerreadonly MVN_ARTIFACT_DIR="${MVN_ARTIFACT_DIR:-$GRPC_JAVA_DIR/mvn-artifacts}" 52*e07d83d3SAndroid Build Coastguard Workermkdir -p "$MVN_ARTIFACT_DIR" 53*e07d83d3SAndroid Build Coastguard Workercp -r "$LOCAL_MVN_TEMP"/* "$MVN_ARTIFACT_DIR"/ 54*e07d83d3SAndroid Build Coastguard Worker 55*e07d83d3SAndroid Build Coastguard Worker"$GRPC_JAVA_DIR"/buildscripts/run_in_docker.sh grpc-java-artifacts-multiarch env \ 56*e07d83d3SAndroid Build Coastguard Worker SKIP_TESTS=true ARCH=aarch_64 /grpc-java/buildscripts/kokoro/unix.sh 57*e07d83d3SAndroid Build Coastguard Worker"$GRPC_JAVA_DIR"/buildscripts/run_in_docker.sh grpc-java-artifacts-multiarch env \ 58*e07d83d3SAndroid Build Coastguard Worker SKIP_TESTS=true ARCH=ppcle_64 /grpc-java/buildscripts/kokoro/unix.sh 59*e07d83d3SAndroid Build Coastguard Worker# Use a newer GCC version. GCC 7 in multiarch has a bug: 60*e07d83d3SAndroid Build Coastguard Worker# internal compiler error: output_operand: invalid %-code 61*e07d83d3SAndroid Build Coastguard Worker"$GRPC_JAVA_DIR"/buildscripts/run_in_docker.sh grpc-java-artifacts-ubuntu2004 env \ 62*e07d83d3SAndroid Build Coastguard Worker SKIP_TESTS=true ARCH=s390_64 /grpc-java/buildscripts/kokoro/unix.sh 63