Plan application deployment #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Plan application deployment | |
| on: | |
| push: | |
| branches-ignore: | |
| - main | |
| repository_dispatch: | |
| types: | |
| - plan-app | |
| workflow_dispatch: | |
| inputs: | |
| application: | |
| description: Application to plan. | |
| required: true | |
| type: string | |
| environment: | |
| description: Environment to plan on. | |
| default: development | |
| required: true | |
| type: environment | |
| permissions: | |
| contents: read | |
| jobs: | |
| plan: | |
| name: Plan deploy of ${{ inputs.application }} to ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| environment: ${{ inputs.environment }} | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_REGION: ${{ vars.AWS_REGION || 'us-east-1' }} | |
| steps: | |
| - name: "DEBUG: Dump inputs" | |
| uses: imesense/gha-echo-action@v0.2 | |
| with: | |
| input-string: ${{ toJson(inputs) }} | |
| - name: "DEBUG: Dump payload" | |
| uses: imesense/gha-echo-action@v0.2 | |
| with: | |
| input-string: ${{ toJson(github.event.client_payload) }} | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up AWS credentials | |
| 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: us-east-1 | |
| - name: Setup OpenTofu | |
| uses: opentofu/setup-opentofu@v1 | |
| - name: Initialize OpenTofu | |
| working-directory: ./tofu/config/${{ inputs.environment }}/infra | |
| run: tofu init | |
| - name: Plan changes | |
| working-directory: ./tofu/config/${{ inputs.environment }}/infra | |
| run: tofu plan --target module.app\[\"${{ inputs.application }}\"] | |
| - name: Display plan | |
| uses: imesense/gha-echo-action@v0.2 | |
| with: | |
| input-string: ${{ steps.plan.outputs.stdout }} |