Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,15 @@ jobs:
permissions:
contents: read

# Terraform Fromate and Validate
terraform-validation:
name: Terraform Validation
uses: ./.github/workflows/terraform-validation.yml
with:
soft-fail: false
permissions:
contents: read

# CodeQL security analysis
codeql-analysis:
name: CodeQL Analysis
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@ jobs:
permissions:
contents: read

# Terraform Format and Validate
terraform-validation:
name: Terraform Validation
uses: ./.github/workflows/terraform-validation.yml
with:
soft-fail: false
permissions:
contents: read

# CodeQL security analysis
codeql-analysis:
name: CodeQL Analysis
Expand Down
78 changes: 78 additions & 0 deletions .github/workflows/terraform-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Terraform Validation

on:
workflow_call:
inputs:
soft-fail:
description: "Whether to continue on Terraform validation errors"
required: false
type: boolean
default: false

permissions:
contents: read

defaults:
run:
shell: pwsh

jobs:
tf-format:
name: Terraform Format
runs-on: ubuntu-latest
strategy:
matrix:
path:
- infrastructure/terraform/
- infrastructure/terraform/vpn/
- infrastructure/terraform/dns/
- infrastructure/terraform/automation/
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Setup Terraform
uses: hashicorp/setup-terraform@5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85 #v4.0.0

- name: Terraform Format
working-directory: ${{ matrix.path }}
run: |
terraform fmt -check -recursive
continue-on-error: ${{ inputs.soft-fail }}

tf-validate:
name: Terraform Validate
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
path:
- infrastructure/terraform/
- infrastructure/terraform/vpn/
- infrastructure/terraform/dns/
- infrastructure/terraform/automation/

steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Setup Terraform
uses: hashicorp/setup-terraform@5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85 # v4.0.0

- name: Terraform Initialize
working-directory: ${{ matrix.path }}
run: |
terraform init -backend=false

- name: Terraform Validate
working-directory: ${{ matrix.path }}
run: |
terraform validate
continue-on-error: ${{ inputs.soft-fail }}