Skip to content

Commit 2419d52

Browse files
authored
chore: Automate staging and production release using CodeBuild as well (#244)
1 parent ffd69c5 commit 2419d52

File tree

3 files changed

+50
-8
lines changed

3 files changed

+50
-8
lines changed

codebuild/release/release-prod.yml

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ version: 0.2
22

33
env:
44
secrets-manager:
5+
GPG_KEY: Maven-GPG-Keys-Credentials:Keyname
6+
GPG_PASS: Maven-GPG-Keys-Credentials:Passphrase
57
SONA_USERNAME: Sonatype-Team-Account:Username
6-
SONA_PASS: Sonatype-Team-Account:Password
8+
SONA_PASSWORD: Sonatype-Team-Account:Password
79

810
phases:
911
install:
1012
runtime-versions:
11-
java: openjdk8
13+
java: openjdk11
1214
pre_build:
1315
commands:
1416
- git checkout $COMMIT_ID
@@ -18,9 +20,23 @@ phases:
1820
echo "pom.xml version (${FOUND_VERSION}) does not match expected version (${VERSION}), stopping"
1921
exit 1;
2022
fi
23+
- export SETTINGS_FILE=$(pwd)/codebuild/release/settings.xml
24+
- aws secretsmanager get-secret-value --region us-west-2 --secret-id Maven-GPG-Keys --query SecretBinary --output text | base64 -d > ~/mvn_gpg.tgz
25+
- tar -xvf ~/mvn_gpg.tgz -C ~
2126
build:
2227
commands:
23-
- echo "Doing nothing, release step is currently a no-op"
28+
- |
29+
mvn deploy \
30+
-Ppublishing \
31+
-Pfast-tests-only \
32+
-DperformRelease \
33+
-Dgpg.homedir="$HOME/mvn_gpg" \
34+
-DautoReleaseAfterClose=true \
35+
-Dgpg.keyname="$GPG_KEY" \
36+
-Dgpg.passphrase="$GPG_PASS" \
37+
-Dsonatype.username="$SONA_USERNAME" \
38+
-Dsonatype.password="$SONA_PASSWORD" \
39+
-s $SETTINGS_FILE
2440
2541
2642
batch:

codebuild/release/release-staging.yml

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
version: 0.2
22

33
env:
4+
variables:
5+
REGION: us-east-1
6+
DOMAIN: crypto-tools-internal
7+
REPOSITORY: java-esdk-staging
8+
parameter-store:
9+
ACCOUNT: /CodeBuild/AccountId
410
secrets-manager:
5-
SONA_USERNAME: Sonatype-Team-Account:Username
6-
SONA_PASS: Sonatype-Team-Account:Password
11+
GPG_KEY: Maven-GPG-Keys-Credentials:Keyname
12+
GPG_PASS: Maven-GPG-Keys-Credentials:Passphrase
713

814
phases:
915
install:
1016
runtime-versions:
11-
java: openjdk8
17+
java: openjdk11
1218
pre_build:
1319
commands:
1420
- git checkout $COMMIT_ID
@@ -18,10 +24,25 @@ phases:
1824
echo "pom.xml version (${FOUND_VERSION}) does not match expected version (${VERSION}), stopping"
1925
exit 1;
2026
fi
27+
- export SETTINGS_FILE=$(pwd)/codebuild/release/settings.xml
28+
- export CODEARTIFACT_TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --domain-owner $ACCOUNT --query authorizationToken --output text --region ${REGION})
29+
- export CODEARTIFACT_REPO_URL=https://${DOMAIN}-${ACCOUNT}.d.codeartifact.${REGION}.amazonaws.com/maven/${REPOSITORY}
30+
- aws secretsmanager get-secret-value --region us-west-2 --secret-id Maven-GPG-Keys --query SecretBinary --output text | base64 -d > ~/mvn_gpg.tgz
31+
- tar -xvf ~/mvn_gpg.tgz -C ~
2132
build:
2233
commands:
23-
- echo "Doing nothing, release step is currently a no-op"
24-
34+
- |
35+
mvn deploy \
36+
-PpublishingCodeArtifact \
37+
-Pfast-tests-only \
38+
-DperformRelease \
39+
-Dgpg.homedir="$HOME/mvn_gpg" \
40+
-DautoReleaseAfterClose=true \
41+
-Dgpg.keyname="$GPG_KEY" \
42+
-Dgpg.passphrase="$GPG_PASS" \
43+
-Dcodeartifact.token=$CODEARTIFACT_TOKEN \
44+
-DaltDeploymentRepository=codeartifact::default::$CODEARTIFACT_REPO_URL \
45+
-s $SETTINGS_FILE
2546
2647
batch:
2748
fast-fail: false

codebuild/release/settings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
<username>aws</username>
99
<password>${codeartifact.token}</password>
1010
</server>
11+
<server>
12+
<id>sonatype-nexus-staging</id>
13+
<username>${sonatype.username}</username>
14+
<password>${sonatype.password}</password>
15+
</server>
1116
</servers>
1217

1318
<profiles>

0 commit comments

Comments
 (0)