Sample App Deployment - Java ECR #15
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
## SPDX-License-Identifier: Apache-2.0 | |
# This workflow is for building and uploading the Java sample application to ECR. | |
# Java 11 will be built and uploaded to all regions to be used by the canary while | |
# other versions (8, 17, 21, 22) will be uploaded to us-east-1 for the purpose of | |
# testing ADOT Java | |
name: Sample App Deployment - Java ECR | |
on: | |
workflow_dispatch: # be able to run the workflow on demand | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }} | |
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }} | |
jobs: | |
java-v11-main: | |
strategy: | |
fail-fast: false | |
matrix: | |
aws-region: [ 'af-south-1','ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-south-2','ap-southeast-1', | |
'ap-southeast-2','ap-southeast-3','ap-southeast-4','ca-central-1','eu-central-1','eu-central-2','eu-north-1', | |
'eu-south-1','eu-south-2','eu-west-1','eu-west-2','eu-west-3','il-central-1','me-central-1','me-south-1', 'sa-east-1', | |
'us-east-1','us-east-2','us-west-1','us-west-2' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.E2E_TEST_ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: us-east-1 | |
- name: Retrieve account | |
uses: aws-actions/aws-secretsmanager-get-secrets@v1 | |
with: | |
secret-ids: | | |
ACCOUNT_ID, region-account/${{ matrix.aws-region }} | |
JAVA_MAIN_SAMPLE_APP_IMAGE, e2e-test/java-main-sample-app-image | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: ${{ matrix.aws-region }} | |
- name: Build and Upload Main Service Image | |
working-directory: sample-apps/java/springboot-main-service | |
run: | | |
sed -i 's#"{{ECR_IMAGE_URI}}"#"${{ env.ACCOUNT_ID }}.dkr.ecr.${{ matrix.aws-region }}.amazonaws.com/${{ env.JAVA_MAIN_SAMPLE_APP_IMAGE }}:v11"#g' build.gradle.kts | |
gradle jib -P javaVersion=11 | |
java-v11-remote: | |
strategy: | |
fail-fast: false | |
matrix: | |
aws-region: [ 'af-south-1','ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-south-2','ap-southeast-1', | |
'ap-southeast-2','ap-southeast-3','ap-southeast-4','ca-central-1','eu-central-1','eu-central-2','eu-north-1', | |
'eu-south-1','eu-south-2','eu-west-1','eu-west-2','eu-west-3','il-central-1','me-central-1','me-south-1', 'sa-east-1', | |
'us-east-1','us-east-2','us-west-1','us-west-2' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.E2E_TEST_ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: us-east-1 | |
- name: Retrieve account | |
uses: aws-actions/aws-secretsmanager-get-secrets@v1 | |
with: | |
secret-ids: | | |
ACCOUNT_ID, region-account/${{ matrix.aws-region }} | |
JAVA_REMOTE_SAMPLE_APP_IMAGE, e2e-test/java-remote-sample-app-image | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: ${{ matrix.aws-region }} | |
- name: Build and Upload Remote Service Image | |
working-directory: sample-apps/java/springboot-remote-service | |
run: | | |
sed -i 's#"{{ECR_IMAGE_URI}}"#"${{ env.ACCOUNT_ID }}.dkr.ecr.${{ matrix.aws-region }}.amazonaws.com/${{ env.JAVA_REMOTE_SAMPLE_APP_IMAGE }}:v11"#g' build.gradle.kts | |
gradle jib -P javaVersion=11 | |
java-main: | |
strategy: | |
fail-fast: false | |
matrix: | |
java-version: [ '8', '17', '21', '22' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
check-latest: true | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.E2E_TEST_ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: us-east-1 | |
- name: Retrieve account | |
uses: aws-actions/aws-secretsmanager-get-secrets@v2 | |
with: | |
secret-ids: | | |
JAVA_MAIN_SAMPLE_APP_IMAGE, e2e-test/java-main-sample-app-image | |
- name: Build and Upload Main Service Image | |
working-directory: sample-apps/java/springboot-main-service | |
run: | | |
# For Java 8, springboot must be lower than version 3 | |
# For Java 11,17,21, they are compatible with both springboot version | |
# For Java 22 and above, springboot must be version 3 or higher | |
if [ "${{ matrix.java-version }}" = "22" ]; then | |
sed -i 's/id("org.springframework.boot")/id("org.springframework.boot") version "3.3.4"/' build.gradle.kts | |
cat build.gradle.kts | |
fi | |
sed -i 's#"{{ECR_IMAGE_URI}}"#"${{ env.E2E_TEST_ACCOUNT_ID }}.dkr.ecr.us-east-1.amazonaws.com/${{ env.JAVA_MAIN_SAMPLE_APP_IMAGE }}:v${{ matrix.java-version }}"#g' build.gradle.kts | |
gradle jib -P javaVersion=${{ matrix.java-version }} | |
java-remote: | |
strategy: | |
fail-fast: false | |
matrix: | |
java-version: [ '8', '17', '21', '22' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
check-latest: true | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::${{ env.E2E_TEST_ACCOUNT_ID }}:role/${{ env.E2E_TEST_ROLE_NAME }} | |
aws-region: us-east-1 | |
- name: Retrieve account | |
uses: aws-actions/aws-secretsmanager-get-secrets@v2 | |
with: | |
secret-ids: | | |
JAVA_REMOTE_SAMPLE_APP_IMAGE, e2e-test/java-remote-sample-app-image | |
- name: Build and Upload Remote Service Image | |
working-directory: sample-apps/java/springboot-remote-service | |
run: | | |
# For Java 8, springboot must be lower than version 3 | |
# For Java 11,17,21, they are compatible with both springboot version | |
# For Java 22 and above, springboot must be version 3 or higher | |
if [ "${{ matrix.java-version }}" = "22" ]; then | |
sed -i 's/id("org.springframework.boot")/id("org.springframework.boot") version "3.3.4"/' build.gradle.kts | |
cat build.gradle.kts | |
fi | |
sed -i 's#"{{ECR_IMAGE_URI}}"#"${{ env.E2E_TEST_ACCOUNT_ID }}.dkr.ecr.us-east-1.amazonaws.com/${{ env.JAVA_REMOTE_SAMPLE_APP_IMAGE }}:v${{ matrix.java-version }}"#g' build.gradle.kts | |
gradle jib -P javaVersion=${{ matrix.java-version }} |