From 74cc178eb8fcc7417d4fcd4a9acccc9fc39d4833 Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:07:22 +0100 Subject: [PATCH 1/6] feat: add push to Amazon ECR for container image --- .github/workflows/temp-aws-push-test.yml | 70 ++++++++++++++++++++++++ .github/workflows/user-management.yml | 28 +++++++++- 2 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/temp-aws-push-test.yml diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml new file mode 100644 index 00000000..32b17a38 --- /dev/null +++ b/.github/workflows/temp-aws-push-test.yml @@ -0,0 +1,70 @@ +name: TEMPORARY AWS Push Test + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + paths: + - "user-management/**" + - ".github/**" + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME_USER_SERVICE: ${{ github.repository_owner }}/stickerlandia/user-management-service + REPOSITORY_URL: github.com/${{ github.repository }} + ECR_REPOSITORY_URL: 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management + +jobs: + push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + attestations: write + id-token: write + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Get Commit Info + id: get_sha + run: | + echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + role-session-name: GitHub_to_AWS_via_FederatedOIDC + aws-region: "us-east-1" + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_USER_SERVICE }} + tags: | + latest + ${{ env.COMMIT_SHA }} + + - name: Build and push Docker image to Amazon ECR + id: push-ecr + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: ./user-management + file: ./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} + GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} + DD_GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} + DD_GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} diff --git a/.github/workflows/user-management.yml b/.github/workflows/user-management.yml index 2c9b270b..999711fd 100644 --- a/.github/workflows/user-management.yml +++ b/.github/workflows/user-management.yml @@ -14,6 +14,7 @@ env: REGISTRY: ghcr.io IMAGE_NAME_USER_SERVICE: ${{ github.repository_owner }}/stickerlandia/user-management-service REPOSITORY_URL: github.com/${{ github.repository }} + ECR_REPOSITORY_URL: 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management jobs: unit-test: @@ -139,6 +140,15 @@ jobs: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + role-session-name: GitHub_to_AWS_via_FederatedOIDC + aws-region: "us-east-1" + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 - name: Extract metadata (tags, labels) for Docker id: meta @@ -149,7 +159,7 @@ jobs: latest ${{ env.COMMIT_SHA }} - - name: Build and push Docker image + - name: Build and push Docker image to Github Container Registry id: push uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: @@ -164,3 +174,19 @@ jobs: GIT_REPOSITORY_URL=${{ env.REPOSITORY_URL }} DD_GIT_REPOSITORY_URL=${{ env.REPOSITORY_URL }} DD_GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} + + - name: Build and push Docker image to Amazon ECR + id: push-ecr + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: ./user-management + file: ./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} + GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} + DD_GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} + DD_GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} From c190462a318f5c72e5889f95faed29220595289a Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:13:39 +0100 Subject: [PATCH 2/6] chore: fix AWS push errors --- .github/workflows/temp-aws-push-test.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml index 32b17a38..b555965a 100644 --- a/.github/workflows/temp-aws-push-test.yml +++ b/.github/workflows/temp-aws-push-test.yml @@ -11,9 +11,8 @@ on: workflow_dispatch: env: - REGISTRY: ghcr.io - IMAGE_NAME_USER_SERVICE: ${{ github.repository_owner }}/stickerlandia/user-management-service - REPOSITORY_URL: github.com/${{ github.repository }} + REGISTRY: 772954894450.dkr.ecr.eu-west-1.amazonaws.com + IMAGE_NAME_USER_SERVICE: stickerlandia-user-management ECR_REPOSITORY_URL: 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management jobs: From e1cef19fb91fa06dab9ab29b9945170cfbc658bf Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:20:46 +0100 Subject: [PATCH 3/6] chore: update ECR push workflow --- .github/workflows/temp-aws-push-test.yml | 30 ++++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml index b555965a..43e9747b 100644 --- a/.github/workflows/temp-aws-push-test.yml +++ b/.github/workflows/temp-aws-push-test.yml @@ -42,6 +42,8 @@ jobs: - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 + with: + registries: "772954894450" - name: Extract metadata (tags, labels) for Docker id: meta @@ -52,18 +54,16 @@ jobs: latest ${{ env.COMMIT_SHA }} - - name: Build and push Docker image to Amazon ECR - id: push-ecr - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 - with: - context: ./user-management - file: ./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} - GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} - DD_GIT_REPOSITORY_URL=${{ env.ECR_REPOSITORY_URL }} - DD_GIT_COMMIT_SHA=${{ env.COMMIT_SHA }} + - name: Build, tag, and push image to Amazon ECR + id: build-publish + shell: bash + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + ECR_REPOSITORY: ${{ env.IMAGE_NAME_USER_SERVICE }} + IMAGE_TAG: "latest" + run: | + docker build "./user-management" -f "/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" + docker push "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" + echo "IMAGE $IMAGE_TAG is pushed to $ECR_REGISTRY/$ECR_REPOSITORY" + echo "image_tag=$IMAGE_TAG" + echo "full_image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" From 63cd3bd8aa6008ed3ecca198a99e3bffe5586369 Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:22:45 +0100 Subject: [PATCH 4/6] chore: update docker build command --- .github/workflows/temp-aws-push-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml index 43e9747b..d6784480 100644 --- a/.github/workflows/temp-aws-push-test.yml +++ b/.github/workflows/temp-aws-push-test.yml @@ -62,7 +62,7 @@ jobs: ECR_REPOSITORY: ${{ env.IMAGE_NAME_USER_SERVICE }} IMAGE_TAG: "latest" run: | - docker build "./user-management" -f "/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" + docker build "./user-management" -f "./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" docker push "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" echo "IMAGE $IMAGE_TAG is pushed to $ECR_REGISTRY/$ECR_REPOSITORY" echo "image_tag=$IMAGE_TAG" From a45fee5813317a56392bcd6466fc945cab91e41a Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:27:35 +0100 Subject: [PATCH 5/6] chore: add manual overrides to AWS push --- .github/workflows/temp-aws-push-test.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml index d6784480..cc4da2a5 100644 --- a/.github/workflows/temp-aws-push-test.yml +++ b/.github/workflows/temp-aws-push-test.yml @@ -62,8 +62,6 @@ jobs: ECR_REPOSITORY: ${{ env.IMAGE_NAME_USER_SERVICE }} IMAGE_TAG: "latest" run: | - docker build "./user-management" -f "./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" - docker push "$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" - echo "IMAGE $IMAGE_TAG is pushed to $ECR_REGISTRY/$ECR_REPOSITORY" - echo "image_tag=$IMAGE_TAG" - echo "full_image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" + docker build "./user-management" -f "./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t stickerlandia-user-management + docker tag stickerlandia-user-management:latest 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management:latest + docker push docker push 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management:latest From b2be276789c45cb1355f190cb6b82ef96b9b4018 Mon Sep 17 00:00:00 2001 From: "james.eastham" Date: Wed, 23 Jul 2025 08:30:17 +0100 Subject: [PATCH 6/6] chore: push to ECR command fix --- .github/workflows/temp-aws-push-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml index cc4da2a5..08e0bc43 100644 --- a/.github/workflows/temp-aws-push-test.yml +++ b/.github/workflows/temp-aws-push-test.yml @@ -64,4 +64,4 @@ jobs: run: | docker build "./user-management" -f "./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile" -t stickerlandia-user-management docker tag stickerlandia-user-management:latest 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management:latest - docker push docker push 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management:latest + docker push 772954894450.dkr.ecr.eu-west-1.amazonaws.com/stickerlandia-user-management:latest