Refactor Terraform CI/CD workflow to support all branches and improve structure
Some checks failed
Terraform CI/CD / terraform (push) Has been cancelled
Some checks failed
Terraform CI/CD / terraform (push) Has been cancelled
This commit is contained in:
52
.github/workflows/terraform.yaml
vendored
52
.github/workflows/terraform.yaml
vendored
@@ -1,18 +1,50 @@
|
||||
name: "Terraform CI/CD"
|
||||
name: Terraform CI/CD
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- terraform/**
|
||||
- "**"
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
terraform:
|
||||
name: "Terraform Infrastructure Change Management"
|
||||
runs-on: ssot-runner
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
# We keep Terraform files in the terraform directory.
|
||||
working-directory: ./terraform
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Terraform
|
||||
uses: hashicorp/setup-terraform@v3
|
||||
with:
|
||||
terraform_version: 1.6.6
|
||||
|
||||
- name: Terraform Init
|
||||
run: terraform init -input=false
|
||||
|
||||
- name: Terraform Format
|
||||
run: terraform fmt -check -recursive
|
||||
|
||||
- name: Terraform Validate
|
||||
run: terraform validate
|
||||
|
||||
- name: Terraform Plan
|
||||
run: |
|
||||
terraform plan \
|
||||
-input=false \
|
||||
-out=tfplan
|
||||
|
||||
- name: Show Terraform Plan
|
||||
run: terraform show -no-color tfplan > plan.txt
|
||||
|
||||
- name: Upload plan artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: terraform-plan
|
||||
path: |
|
||||
tfplan
|
||||
plan.txt
|
||||
|
||||
- name: Terraform Apply
|
||||
if: github.ref == 'refs/heads/main'
|
||||
run: terraform apply -input=false -auto-approve tfplan
|
||||
|
||||
Reference in New Issue
Block a user