name: Deploy Lambda (Terraform) on: workflow_call: inputs: lambda_name: required: true type: string lambda_path: required: true type: string stage: required: true type: string aws_region: required: true type: string image_digest: required: true type: string secrets: AWS_ACCESS_KEY_ID: required: true AWS_SECRET_ACCESS_KEY: required: true AWS_ACCOUNT_ID: required: true jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ inputs.aws_region }} - uses: hashicorp/setup-terraform@v3 - name: Terraform Init working-directory: ${{ inputs.lambda_path }} run: terraform init -reconfigure - name: Terraform Workspace working-directory: ${{ inputs.lambda_path }} run: | terraform workspace select ${{ inputs.stage }} \ || terraform workspace new ${{ inputs.stage }} - name: Terraform Plan working-directory: ${{ inputs.lambda_path }} run: | terraform plan \ -var="stage=${{ inputs.stage }}" \ -var="image_digest=${{ inputs.image_digest }}" # - name: Terraform Apply # working-directory: ${{ inputs.lambda_path }} # run: | # terraform apply \ # -auto-approve \ # -var="stage=${{ inputs.stage }}" \ # -var="image_digest=${{ inputs.image_digest }}"