diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 560bf94..d36be71 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,6 +21,7 @@ jobs: environment: ${{ inputs.environment }} permissions: contents: read + packages: read steps: - name: Checkout infra template uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 @@ -35,6 +36,23 @@ jobs: aws-region: us-east-1 aws-access-key-id: ${{ secrets.AWS_DEPLOY_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_DEPLOY_SECRET_ACCESS_KEY }} + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Log in to Amazon ECR + id: ecr-login + uses: aws-actions/amazon-ecr-login@d539f0932e70871a027e9d5a9d8fc38589180a64 # v2.1.6 + - name: Mirror image from GHCR to ECR + env: + GHCR_IMAGE: ghcr.io/libretexts/molview-lambda-api:${{ inputs.version }} + ECR_IMAGE: ${{ steps.ecr-login.outputs.registry }}/${{ vars.AWS_ECR_REPO }}:${{ inputs.version }} + run: | + docker pull "$GHCR_IMAGE" + docker tag "$GHCR_IMAGE" "$ECR_IMAGE" + docker push "$ECR_IMAGE" - name: Deploy CloudFormation stack uses: aws-actions/aws-cloudformation-github-deploy@81e3b03d2266bcb76c4bcc37a7d71d9cb67838bb # v2.2.0 with: @@ -42,4 +60,4 @@ jobs: template: infra/molview/api.json role-arn: ${{ secrets.AWS_ROLE_ARN }} capabilities: 'CAPABILITY_NAMED_IAM' - parameter-overrides: 'MolViewApiEnvironment=${{ inputs.environment }},MolViewApiImage=ghcr.io/libretexts/molview-lambda-api:${{ inputs.version }}' \ No newline at end of file + parameter-overrides: 'MolViewApiEnvironment=${{ inputs.environment }},MolViewApiImage=${{ steps.ecr-login.outputs.registry }}/${{ vars.AWS_ECR_REPO }}:${{ inputs.version }}' \ No newline at end of file