name: Terraform CI/CD on: push: pull_request: jobs: terraform: runs-on: ssot container: image: hashicorp/terraform:1.6.6 steps: - name: Install dependencies run: apk add --no-cache nodejs npm git - name: Checkout repository uses: actions/checkout@v4 - name: Terraform Init run: terraform -chdir=terraform init -input=false - name: Terraform Validate run: terraform -chdir=terraform validate - name: Terraform Plan run: terraform -chdir=terraform plan -input=false -out=tfplan - name: Show plan run: terraform -chdir=terraform show -no-color tfplan > terraform/plan.txt - name: Upload plan artifact uses: actions/upload-artifact@v3 with: name: terraform-plan path: | terraform/tfplan terraform/plan.txt - name: Terraform Apply if: github.ref == 'refs/heads/main' run: terraform -chdir=terraform apply -input=false -auto-approve tfplan