GitHub Action that will run TFlint on Terraform files.
- Docker Hub: devopsinfra/action-tflint:latest
- GitHub Packages: ghcr.io/devops-infra/action-tflint:latest
- Main use will be everywhere where Terraform is used and is great for statically or actively checking modules' sources.
- Using wata727's TFLint.
This action supports three tag levels for flexible versioning:
vX: latest patch of the major version (e.g.,v1).vX.Y: latest patch of the minor version (e.g.,v1.2).vX.Y.Z: fixed to a specific release (e.g.,v1.2.3).
- name: Run the Action
uses: devops-infra/[email protected]
with:
dir_filter: modules| Input Variable | Required | Default | Description |
|---|---|---|---|
dir_filter |
No | * |
Prefixes or sub-directories to search for Terraform modules. Use comma as separator. |
fail_on_changes |
No | true |
Whether TFLint should fail whole action. |
tflint_config |
No | .tflint.hcl |
Location from repository root to TFLint config file. Disables tflint_params. |
tflint_params |
No | `` | Parameters passed to TFLint binary. See TFLint for details. |
run_init |
No | true |
Whether the action should run terraform init. Defaults to true. |
By default fail if lint errors found in any subdirectory. Run the Action via GitHub.
name: Check TFLint
on:
push:
branches:
- "**"
jobs:
format-hcl:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Check linting of Terraform files
uses: devops-infra/[email protected]Use different location for TFLint config file and parse only aws* and gcp* modules in modules/ directory. Run the Action via GitHub.
name: Check TFLint with custom config
on:
push:
branches:
- "**"
jobs:
format-hcl:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Check linting of Terraform modules
uses: devops-infra/[email protected]
with:
tflint_config: modules/.tflint.hcl
dir_filter: modules/aws,modules/gcpUse deep check (need cloud credentials) and treat all directories under modules as Terraform modules. Run the Action via DockerHub.
name: Check TFLint with custom config
on:
push:
branches:
- "**"
jobs:
format-hcl:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Check linting of Terraform modules
uses: devops-infra/[email protected]
with:
tflint_params: "--module --deep"
dir_filter: modulesContributions are welcome! See CONTRIBUTING. This project is licensed under the MIT License - see the LICENSE file for details.
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please:
- π Create an issue
- π Star this repository if you find it useful!