diff --git a/.github/workflows/temp-aws-push-test.yml b/.github/workflows/temp-aws-push-test.yml new file mode 100644 index 00000000..08e0bc43 --- /dev/null +++ b/.github/workflows/temp-aws-push-test.yml @@ -0,0 +1,67 @@ +name: TEMPORARY AWS Push Test + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + paths: + - "user-management/**" + - ".github/**" + workflow_dispatch: + +env: + 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: + 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 + with: + registries: "772954894450" + + - 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, 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 stickerlandia-user-management + docker tag stickerlandia-user-management:latest 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 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 }}