version: 0.2 # 'release-staging' is an AWS::CodeBuild::BuildSpec that Stages a release on CodeArtifact and validates the staging using 'validate-staging' # Command to trigger this codebuild from an authorized command line. # aws codebuild start-build-batch \ # --region us-west-2 \ # --project-name java-ddb-ec-test-release \ # --environment-variables-override name=VERSION,value=,type=PLAINTEXT name=COMMIT_ID,value=,type=PLAINTEXT env: variables: REGION: us-east-1 DOMAIN: crypto-tools-internal REPOSITORY: java-ddbec-staging parameter-store: ACCOUNT: /CodeBuild/AccountId secrets-manager: GPG_KEY: Maven-GPG-Keys-Credentials:Keyname GPG_PASS: Maven-GPG-Keys-Credentials:Passphrase phases: install: runtime-versions: java: openjdk8 pre_build: commands: - git checkout $COMMIT_ID - FOUND_VERSION=$(grep version sdk1/pom.xml | head -n 2 | sed -n 's/[ \t]*\(.*\)<\/version>/\1/p') - | if expr ${FOUND_VERSION} != ${VERSION}; then echo "pom.xml version (${FOUND_VERSION}) does not match expected version (${VERSION}), stopping" exit 1; fi - export SETTINGS_FILE=$(pwd)/codebuild/release/settings.xml - export CODEARTIFACT_TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --domain-owner $ACCOUNT --query authorizationToken --output text --region ${REGION}) - export CODEARTIFACT_REPO_URL=https://${DOMAIN}-${ACCOUNT}.d.codeartifact.${REGION}.amazonaws.com/maven/${REPOSITORY} - aws secretsmanager get-secret-value --region us-west-2 --secret-id Maven-GPG-Keys --query SecretBinary --output text | base64 -d > ~/mvn_gpg.tgz - tar -xvf ~/mvn_gpg.tgz -C ~ build: commands: - | mvn deploy \ -PpublishingCodeArtifact \ -DperformRelease \ -Dgpg.homedir="$HOME/mvn_gpg" \ -DautoReleaseAfterClose=true \ -Dgpg.keyname="$GPG_KEY" \ -Dgpg.passphrase="$GPG_PASS" \ -Dcodeartifact.token=$CODEARTIFACT_TOKEN \ -DaltDeploymentRepository=codeartifact::default::$CODEARTIFACT_REPO_URL \ -s $SETTINGS_FILE batch: fast-fail: false build-graph: - identifier: release_to_staging - identifier: validate_staging_release_openjdk8 depend-on: - release_to_staging buildspec: codebuild/release/validate-staging.yml env: variables: JAVA_ENV_VERSION: openjdk8 JAVA_NUMERIC_VERSION: 8 image: aws/codebuild/standard:3.0 - identifier: validate_staging_release_openjdk11 depend-on: - release_to_staging buildspec: codebuild/release/validate-staging.yml env: variables: JAVA_ENV_VERSION: openjdk11 JAVA_NUMERIC_VERSION: 11 image: aws/codebuild/standard:3.0 - identifier: validate_staging_release_corretto8 depend-on: - release_to_staging buildspec: codebuild/release/validate-staging.yml env: variables: JAVA_ENV_VERSION: corretto8 JAVA_NUMERIC_VERSION: 8 image: aws/codebuild/amazonlinux2-x86_64-standard:3.0 - identifier: validate_staging_release_corretto11 depend-on: - release_to_staging buildspec: codebuild/release/validate-staging.yml env: variables: JAVA_ENV_VERSION: corretto11 JAVA_NUMERIC_VERSION: 11 image: aws/codebuild/amazonlinux2-x86_64-standard:3.0