44 lines
1.0 KiB
YAML
44 lines
1.0 KiB
YAML
name: Terraform CI/CD
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
terraform:
|
|
runs-on: ssot-runner
|
|
|
|
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
|