Files

68 lines
1.6 KiB
YAML

name: Terraform CI/CD
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
terraform:
runs-on: ubuntu-latest
env:
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
- name: Terraform Init (Dev)
run: |
cd environments/dev
terraform init
continue-on-error: false
- name: Terraform Plan (Dev)
run: |
cd environments/dev
terraform plan -out=dev.plan
continue-on-error: false
- name: Terraform Apply (Dev)
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: |
cd environments/dev
terraform apply dev.plan
continue-on-error: false
- name: Terraform Init (Prod)
run: |
cd environments/prod
terraform init
continue-on-error: false
- name: Terraform Plan (Prod)
run: |
cd environments/prod
terraform plan -out=prod.plan
continue-on-error: false
- name: Terraform Apply (Prod)
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: |
cd environments/prod
terraform apply prod.plan
continue-on-error: false
- name: Terraform Validate
run: |
cd environments/dev
terraform validate
cd ../prod
terraform validate