|
7 | 7 |
|
8 | 8 | jobs: |
9 | 9 | deploy: |
| 10 | + |
10 | 11 | runs-on: ubuntu-latest |
11 | | - |
| 12 | + |
| 13 | + permissions: |
| 14 | + deployments: write |
| 15 | + |
12 | 16 | steps: |
13 | 17 | - name: Checkout code |
14 | 18 | uses: actions/checkout@v3 |
15 | | - |
| 19 | + |
16 | 20 | - name: Set up Docker Buildx |
17 | 21 | uses: docker/setup-buildx-action@v2 |
18 | | - |
| 22 | + |
19 | 23 | - name: Configure AWS credentials |
20 | 24 | uses: aws-actions/configure-aws-credentials@v1 |
21 | 25 | with: |
22 | 26 | aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
23 | 27 | aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
24 | 28 | aws-region: ${{ vars.AWS_REGION }} |
25 | | - |
| 29 | + |
26 | 30 | - name: Login to Amazon ECR |
27 | 31 | id: login-ecr |
28 | 32 | uses: aws-actions/amazon-ecr-login@v1 |
29 | | - |
| 33 | + |
30 | 34 | # Set ECR image URI as environment variables |
31 | 35 | - name: Set ECR image URIs |
32 | 36 | id: set-image-uris |
|
36 | 40 | IMAGE_TAG_LATEST="$ECR_REGISTRY/$ECR_REPOSITORY:latest" |
37 | 41 | echo "image_uri_latest=$IMAGE_TAG_LATEST" >> $GITHUB_OUTPUT |
38 | 42 | echo "ecr_repository=$ECR_REPOSITORY" >> $GITHUB_OUTPUT |
39 | | - |
| 43 | +
|
40 | 44 | - name: Build and push Docker image |
41 | 45 | id: build-image-and-push-to-ecr |
42 | 46 | run: | |
|
51 | 55 | --image-uri ${{ steps.set-image-uris.outputs.image_uri_latest }} \ |
52 | 56 | --region ${{ vars.AWS_REGION }} |
53 | 57 |
|
54 | | - - name: Test Lambda function |
| 58 | + # Capture Lambda Function URL for GitHub Deployment |
| 59 | + - name: Get Lambda Function URL |
| 60 | + id: get-function-url |
55 | 61 | run: | |
56 | | - echo "Lambda function updated successfully!" |
57 | | - echo "Image deployed: ${{ steps.set-image-uris.outputs.image_uri_latest }}" |
58 | | - echo "Function URL: $(aws lambda get-function-url-config --function-name ${{ vars.LAMBDA_FUNCTION_NAME }} --query 'FunctionUrl' --output text --region ${{ vars.AWS_REGION }} || echo 'No function URL configured')" |
| 62 | + FUNCTION_URL=$(aws lambda get-function-url-config --function-name ${{ vars.LAMBDA_FUNCTION_NAME }} --query 'FunctionUrl' --output text --region ${{ vars.AWS_REGION }} || echo '') |
| 63 | + echo "url=$FUNCTION_URL" >> $GITHUB_OUTPUT |
| 64 | +
|
| 65 | + - name: Create GitHub Deployment Record |
| 66 | + uses: chrnorm/deployment-action@v2 |
| 67 | + id: create-github-deployment |
| 68 | + with: |
| 69 | + token: ${{ github.token }} |
| 70 | + environment: "production" |
| 71 | + environment-url: ${{ steps.get-function-url.outputs.url }} |
| 72 | + description: "Lambda Deployment" |
0 commit comments