xref: /aosp_15_r20/external/aws-crt-java/codebuild/cd/generic-unix-build.sh (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
1#!/usr/bin/env bash
2
3set -ex
4
5cd `dirname $0`/../..
6
7git submodule update --init
8
9AWS_CRT_HOST=`uname | tr '[:upper:]' '[:lower:]'`-`uname -m`
10
11if [ -z "$AWS_CRT_TARGET" ]; then
12    AWS_CRT_TARGET=$AWS_CRT_HOST
13fi
14
15SKIP_INSTALL=
16
17if [[ "$AWS_CRT_TARGET" != "$AWS_CRT_HOST" ]]; then
18    SKIP_INSTALL=--skip-install
19fi
20
21
22if [[ $AWS_CRT_TARGET == linux-armv8 ]]; then
23    CLASSIFIER=linux-aarch_64
24else
25    CLASSIFIER=$AWS_CRT_TARGET
26fi
27
28# Pry the builder version this CRT is using out of ci.yml
29BUILDER_VERSION=$(cat .github/workflows/ci.yml | grep 'BUILDER_VERSION:' | sed 's/\s*BUILDER_VERSION:\s*\(.*\)/\1/')
30echo "Using builder version ${BUILDER_VERSION}"
31
32aws s3 cp s3://aws-crt-builder/releases/${BUILDER_VERSION}/builder.pyz ./builder
33chmod a+x builder
34
35# Upload the lib to S3
36GIT_TAG=$(git describe --tags)
37
38./builder build -p aws-crt-java --target=$AWS_CRT_TARGET run_tests=false
39# Builder corss-compiles the shared lib to `target/cmake-build/aws-crt-java/`, move it to the expected path for mvn to generate the jar.
40mv target/cmake-build/aws-crt-java/* target/cmake-build/
41
42JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 mvn -B package -DskipTests -Dshared-lib.skip=true -Dcrt.classifier=$CLASSIFIER
43
44aws s3 cp --recursive --include "*.so" target/cmake-build/lib s3://aws-crt-java-pipeline/${GIT_TAG}/lib
45aws s3 cp target/ s3://aws-crt-java-pipeline/${GIT_TAG}/jar/ --recursive --exclude "*" --include "aws-crt*.jar"
46