mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
86 lines
2.6 KiB
YAML
86 lines
2.6 KiB
YAML
name: "Build and Push Lambda Image to ECR"
|
|
description: "Reusable action for building and pushing lambda Docker image to ECR"
|
|
|
|
inputs:
|
|
ecr_name:
|
|
description: "Lambda name / ECR repo name"
|
|
required: true
|
|
dockerfile_path:
|
|
description: "Path to Dockerfile"
|
|
required: true
|
|
ecr_tf_dir:
|
|
description: "Path to ECR terraform directory"
|
|
required: true
|
|
lambda_tf_dir:
|
|
description: "Path to Lambda terraform directory"
|
|
required: true
|
|
aws-access-key-id:
|
|
description: "AWS access key"
|
|
required: true
|
|
aws-secret-access-key:
|
|
description: "AWS secret key"
|
|
required: true
|
|
aws-region:
|
|
description: "AWS region"
|
|
required: true
|
|
git-sha:
|
|
description: "Git commit SHA"
|
|
required: true
|
|
git-ref:
|
|
description: "Git ref name"
|
|
required: true
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Configure AWS credentials
|
|
uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
aws-access-key-id: ${{ inputs.aws-access-key-id }}
|
|
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
|
|
aws-region: ${{ inputs.aws-region }}
|
|
|
|
- name: Log in to Amazon ECR
|
|
id: login-ecr
|
|
uses: aws-actions/amazon-ecr-login@v2
|
|
|
|
- name: Deploy ECR
|
|
uses: ./.github/workflows/actions/terraform-deploy
|
|
with:
|
|
working_directory: ${{ inputs.ecr_tf_dir }}
|
|
aws-access-key-id: ${{ inputs.aws-access-key-id }}
|
|
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
|
|
aws-region: ${{ inputs.aws-region }}
|
|
- name: Set Docker image tag
|
|
id: set_tag
|
|
shell: bash
|
|
run: |
|
|
SHORT_SHA=$(echo "${{ inputs.git-sha }}" | cut -c1-7)
|
|
BRANCH=$(echo "${{ inputs.git-ref }}" | tr '/' '-')
|
|
TAG="${BRANCH}-${SHORT_SHA}"
|
|
echo "IMAGE_TAG=${TAG}" >> $GITHUB_ENV
|
|
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
|
|
|
- name: Build and push Docker image
|
|
shell: bash
|
|
run: |
|
|
IMAGE_URI=${{ steps.login-ecr.outputs.registry }}/${{ inputs.ecr_name }}:${{ steps.set_tag.outputs.tag }}
|
|
echo "Building Docker image for ${{ inputs.ecr_name }}..."
|
|
docker build -t $IMAGE_URI -f ${{ inputs.dockerfile_path }} .
|
|
|
|
echo "Pushing to ECR..."
|
|
docker push $IMAGE_URI
|
|
|
|
- name: Deploy Lambda
|
|
uses: ./.github/workflows/actions/terraform-deploy
|
|
with:
|
|
working_directory: ${{ inputs.lambda_tf_dir }}
|
|
aws-access-key-id: ${{ inputs.aws-access-key-id }}
|
|
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
|
|
aws-region: ${{ inputs.aws-region }}
|
|
lambda-image-tag: ${{ steps.set_tag.outputs.tag }}
|
|
|
|
|
|
|