Terraform CI #8
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: Terraform CI | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| action: | |
| description: 'Choose the action to perform' | |
| required: true | |
| default: 'apply' | |
| type: choice | |
| options: | |
| - plan | |
| - apply | |
| - destroy | |
| jobs: | |
| terraform: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Set up AWS CLI | |
| uses: aws-actions/configure-aws-credentials@v1 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: us-east-2 | |
| - name: Set up Terraform | |
| uses: hashicorp/setup-terraform@v2 | |
| with: | |
| terraform_version: 1.5.0 # Specify the desired Terraform version | |
| - name: Terraform Initialize | |
| run: terraform init | |
| working-directory: terraform # Specify the working directory for Terraform | |
| - name: Terraform Validate | |
| run: terraform validate | |
| working-directory: terraform # Specify the working directory for Terraform | |
| - name: Terraform Plan | |
| if: ${{ github.event.inputs.action == 'plan' }} | |
| run: terraform plan | |
| working-directory: terraform # Specify the working directory for Terraform | |
| - name: Terraform Apply | |
| if: ${{ github.event.inputs.action == 'apply' }} | |
| run: terraform apply -auto-approve | |
| working-directory: terraform # Specify the working directory for Terraform | |
| - name: Terraform Destroy | |
| if: ${{ github.event.inputs.action == 'destroy' }} | |
| run: terraform destroy -auto-approve | |
| working-directory: terraform # Specify the working directory for Terraform |