xref: /aosp_15_r20/external/aws-crt-java/codebuild/cd/deploy-snapshot.yml (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
1*3c7ae9deSAndroid Build Coastguard Workerversion: 0.2
2*3c7ae9deSAndroid Build Coastguard Worker#this buildspec assumes the aws-common-runtime/ubuntu-16.04 image
3*3c7ae9deSAndroid Build Coastguard Worker# This job is responsible for artifacting the JAR which will have all of the other shared libs stuffed
4*3c7ae9deSAndroid Build Coastguard Worker# into it once all platforms are built and artifacted
5*3c7ae9deSAndroid Build Coastguard Workerphases:
6*3c7ae9deSAndroid Build Coastguard Worker  install:
7*3c7ae9deSAndroid Build Coastguard Worker    commands:
8*3c7ae9deSAndroid Build Coastguard Worker      - sudo add-apt-repository ppa:openjdk-r/ppa
9*3c7ae9deSAndroid Build Coastguard Worker      - sudo apt-get update -y
10*3c7ae9deSAndroid Build Coastguard Worker      - sudo apt-get install openjdk-11-jdk-headless maven wget unzip -y -f
11*3c7ae9deSAndroid Build Coastguard Worker      # install android sdk
12*3c7ae9deSAndroid Build Coastguard Worker      - wget --quiet https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
13*3c7ae9deSAndroid Build Coastguard Worker      - export ANDROID_SDK_ROOT=$CODEBUILD_SRC_DIR/android-sdk
14*3c7ae9deSAndroid Build Coastguard Worker      - mkdir -p $ANDROID_SDK_ROOT/cmdline-tools
15*3c7ae9deSAndroid Build Coastguard Worker      - unzip commandlinetools-linux-7583922_latest.zip -d $ANDROID_SDK_ROOT/cmdline-tools
16*3c7ae9deSAndroid Build Coastguard Worker      # This weird path needed for cmd tool to work
17*3c7ae9deSAndroid Build Coastguard Worker      - mv $ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/latest
18*3c7ae9deSAndroid Build Coastguard Worker      # install android build tools
19*3c7ae9deSAndroid Build Coastguard Worker      - echo y | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "build-tools;30.0.3" "platforms;android-30" "ndk;21.4.7075529"
20*3c7ae9deSAndroid Build Coastguard Worker
21*3c7ae9deSAndroid Build Coastguard Worker  pre_build:
22*3c7ae9deSAndroid Build Coastguard Worker    commands:
23*3c7ae9deSAndroid Build Coastguard Worker      - cd $CODEBUILD_SRC_DIR/aws-crt-java
24*3c7ae9deSAndroid Build Coastguard Worker      - export PKG_VERSION=$(git describe --tags | cut -f2 -dv)
25*3c7ae9deSAndroid Build Coastguard Worker      - echo $PKG_VERSION
26*3c7ae9deSAndroid Build Coastguard Worker      - mkdir -p target/cmake-build/lib
27*3c7ae9deSAndroid Build Coastguard Worker      # mv all the platform-specific jars to target/
28*3c7ae9deSAndroid Build Coastguard Worker      - aws s3 cp --recursive s3://aws-crt-java-pipeline/v${PKG_VERSION}/jar $CODEBUILD_SRC_DIR/aws-crt-java/target/
29*3c7ae9deSAndroid Build Coastguard Worker      - mv $CODEBUILD_SRC_DIR_linux_x64/dist/aws-crt-1.0.0-SNAPSHOT-linux-x86_64.jar $CODEBUILD_SRC_DIR/aws-crt-java/target/
30*3c7ae9deSAndroid Build Coastguard Worker      - mv $CODEBUILD_SRC_DIR_linux_x86/dist/aws-crt-1.0.0-SNAPSHOT-linux-x86_32.jar $CODEBUILD_SRC_DIR/aws-crt-java/target/
31*3c7ae9deSAndroid Build Coastguard Worker      # cp all the shared libs to cmake-build
32*3c7ae9deSAndroid Build Coastguard Worker      - aws s3 cp --recursive s3://aws-crt-java-pipeline/v${PKG_VERSION}/lib $CODEBUILD_SRC_DIR/aws-crt-java/target/cmake-build/lib
33*3c7ae9deSAndroid Build Coastguard Worker      - cp -rv $CODEBUILD_SRC_DIR_linux_x64/dist/* $CODEBUILD_SRC_DIR/aws-crt-java/target/cmake-build/
34*3c7ae9deSAndroid Build Coastguard Worker      - cp -rv $CODEBUILD_SRC_DIR_linux_x86/dist/* $CODEBUILD_SRC_DIR/aws-crt-java/target/cmake-build/
35*3c7ae9deSAndroid Build Coastguard Worker      - ls -alR $CODEBUILD_SRC_DIR/aws-crt-java/target
36*3c7ae9deSAndroid Build Coastguard Worker      # install settings.xml to ~/.m2/settings.xml
37*3c7ae9deSAndroid Build Coastguard Worker      - mkdir -p $HOME/.m2
38*3c7ae9deSAndroid Build Coastguard Worker      - aws s3 cp s3://code-sharing-aws-crt/aws-crt-java.settings.xml $HOME/.m2/settings.xml
39*3c7ae9deSAndroid Build Coastguard Worker      # import gpg key
40*3c7ae9deSAndroid Build Coastguard Worker      - aws s3 cp s3://code-sharing-aws-crt/aws-sdk-common-runtime.key.asc /tmp/aws-sdk-common-runtime.key.asc
41*3c7ae9deSAndroid Build Coastguard Worker      - gpg --import /tmp/aws-sdk-common-runtime.key.asc
42*3c7ae9deSAndroid Build Coastguard Worker      - export GPG_PASSPHRASE=$(aws --query "SecretString" secretsmanager get-secret-value --secret-id aws-sdk-common-runtime.key.asc/password | cut -f2 -d":" | sed -e 's/[\\\"\}]//g')
43*3c7ae9deSAndroid Build Coastguard Worker      - export ST_PASSWORD=$(aws --query "SecretString" secretsmanager get-secret-value --secret-id Sonatype/JIRA/Password | cut -f2 -d":" | sed -e 's/[\\\"\}]//g')
44*3c7ae9deSAndroid Build Coastguard Worker      # Use the password from secret manager to update the settings
45*3c7ae9deSAndroid Build Coastguard Worker      - sed -i 's/password-to-replace/'"$ST_PASSWORD"'/g' $HOME/.m2/settings.xml
46*3c7ae9deSAndroid Build Coastguard Worker  build:
47*3c7ae9deSAndroid Build Coastguard Worker    commands:
48*3c7ae9deSAndroid Build Coastguard Worker      - cd $CODEBUILD_SRC_DIR/aws-crt-java
49*3c7ae9deSAndroid Build Coastguard Worker      # update the version to match the git tag, make a snapshot version we can test
50*3c7ae9deSAndroid Build Coastguard Worker      - export DEPLOY_VERSION=${PKG_VERSION}-SNAPSHOT
51*3c7ae9deSAndroid Build Coastguard Worker      - mvn -B versions:set -DnewVersion=${DEPLOY_VERSION}
52*3c7ae9deSAndroid Build Coastguard Worker      # do a full build/deploy, but skip shared libs and tests, since the shared libs were artifacts above
53*3c7ae9deSAndroid Build Coastguard Worker      - mvn -B deploy -Prelease -Dshared-lib.skip=true -Dmaven.test.skip=true -Dgpg.passphrase=$GPG_PASSPHRASE
54*3c7ae9deSAndroid Build Coastguard Worker      - bash ./codebuild/cd/deploy-platform-specific-jars.sh
55*3c7ae9deSAndroid Build Coastguard Worker      # update the version to match the git tag, make a staging release which we will release once snapshot testing passes
56*3c7ae9deSAndroid Build Coastguard Worker      - export DEPLOY_VERSION=${PKG_VERSION}
57*3c7ae9deSAndroid Build Coastguard Worker      - mvn -B versions:set -DnewVersion=${DEPLOY_VERSION}
58*3c7ae9deSAndroid Build Coastguard Worker      - mvn -B deploy -Prelease -Dshared-lib.skip=true -Dmaven.test.skip=true -Dgpg.passphrase=$GPG_PASSPHRASE | tee /tmp/deploy.log
59*3c7ae9deSAndroid Build Coastguard Worker      - export STAGING_REPO_ID=$(cat /tmp/deploy.log | grep "Created staging repository with ID" | cut -d\" -f2 | tee /tmp/repositoryId.txt)
60*3c7ae9deSAndroid Build Coastguard Worker      # upload the platform specific jars to staging repo and close the staging repo.
61*3c7ae9deSAndroid Build Coastguard Worker      - bash ./codebuild/cd/deploy-platform-specific-jars.sh
62*3c7ae9deSAndroid Build Coastguard Worker      - mvn nexus-staging:close -Prelease -DstagingRepositoryId=$STAGING_REPO_ID
63*3c7ae9deSAndroid Build Coastguard Worker      # deploy android
64*3c7ae9deSAndroid Build Coastguard Worker      - ./codebuild/cd/deploy-snapshot-android.sh
65*3c7ae9deSAndroid Build Coastguard Worker  post_build:
66*3c7ae9deSAndroid Build Coastguard Worker    commands:
67*3c7ae9deSAndroid Build Coastguard Worker
68*3c7ae9deSAndroid Build Coastguard Workerartifacts:
69*3c7ae9deSAndroid Build Coastguard Worker  discard-paths: yes
70*3c7ae9deSAndroid Build Coastguard Worker  files:
71*3c7ae9deSAndroid Build Coastguard Worker    - $CODEBUILD_SRC_DIR/aws-crt-java/target/aws-crt-*.jar
72*3c7ae9deSAndroid Build Coastguard Worker    - $CODEBUILD_SRC_DIR/aws-crt-java/target/aws-crt-*.asc
73*3c7ae9deSAndroid Build Coastguard Worker    - /tmp/repositoryId.txt
74*3c7ae9deSAndroid Build Coastguard Worker    - /tmp/android_repositoryId.txt
75*3c7ae9deSAndroid Build Coastguard Worker
76*3c7ae9deSAndroid Build Coastguard Workercache:
77*3c7ae9deSAndroid Build Coastguard Worker  paths:
78*3c7ae9deSAndroid Build Coastguard Worker    - "/root/.m2/**/*"
79