Skip to content

Merge pull request #1454 from alphagov/revert-1453-fastly-logs #2330

Merge pull request #1454 from alphagov/revert-1453-fastly-logs

Merge pull request #1454 from alphagov/revert-1453-fastly-logs #2330

Workflow file for this run

name: Terraform validation and linting
on:
push:
paths: ['**/*.tf', '**/*.hcl', '.github/workflows/ci-terraform.yml']
env:
TF_IN_AUTOMATION: true
TF_PLUGIN_CACHE_DIR: ${{ github.workspace }}/.terraform.d/plugin-cache
jobs:
tflint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
show-progress: false
- name: Determine Terraform version to use
uses: dflook/terraform-version@4c69e7434d1fc821d2faa9311c274d29919aa693
id: terraform-version
with:
path: terraform
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ steps.terraform-version.outputs.terraform }}
terraform_wrapper: false
- name: Create Terraform plugin cache dir
run: mkdir -p "$TF_PLUGIN_CACHE_DIR"
- name: Cache Terraform plugins
uses: actions/cache@v4
with:
path: ${{ env.TF_PLUGIN_CACHE_DIR }}
key:
terraform-plugins-${{ runner.os }}-${{ hashFiles('**/.terraform.lock.hcl') }}
- uses: actions/cache@v4
name: Cache TFLint plugins
with:
path: ~/.tflint.d/plugins
key: tflint-${{ runner.os }}-${{ hashFiles('**/tflint.hcl') }}
- uses: terraform-linters/setup-tflint@v4
name: Set up TFLint
with:
tflint_version: v0.47.0
- name: terraform fmt
working-directory: terraform
run: |
if ! terraform fmt -check -diff -list=true -recursive .; then
>&2 echo "Some terraform files weren't formatted correctly. Run 'terraform fmt' to fix them."
exit 1
fi
- name: terraform init
run: |
STEP_EXIT_STATUS=0
for d in terraform/deployments/*; do
echo "$d"
cd "$d"
if ! terraform init -backend=false; then STEP_EXIT_STATUS=1; fi
cd "$OLDPWD"
echo -e '\n-------------------------\n'
done
exit $STEP_EXIT_STATUS
- name: terraform validate
run: |
STEP_EXIT_STATUS=0
for d in terraform/deployments/*; do
echo "$d"
cd "$d"
if ! terraform validate; then STEP_EXIT_STATUS=1; fi
cd "$OLDPWD"
echo -e '\n-------------------------\n'
done
exit $STEP_EXIT_STATUS
- name: tflint
run: |
cd terraform/deployments
tflint --version
tflint --init --recursive
tflint --format compact --module --recursive --force \
--enable-rule=terraform_comment_syntax \
--enable-rule=terraform_deprecated_index \
--enable-rule=terraform_required_providers \
--enable-rule=terraform_standard_module_structure \
--enable-rule=terraform_typed_variables \
--enable-rule=terraform_unused_declarations \
--enable-rule=terraform_unused_required_providers