Skip to content

devops-infra/action-tflint

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

πŸš€ GitHub Action linting Terraform files

GitHub Action that will run TFlint on Terraform files.

πŸ“¦ Available on

✨ Features

  • Main use will be everywhere where Terraform is used and is great for statically or actively checking modules' sources.
  • Using wata727's TFLint.

πŸ“Š Badges

GitHub repo GitHub last commit GitHub code size in bytes GitHub license
DockerHub Docker version Image size Docker Pulls

🏷️ Version Tags: vX, vX.Y, vX.Y.Z

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).

πŸ“– API Reference

    - name: Run the Action
      uses: devops-infra/action-tflint@v1.0.0
      with:
        dir_filter: modules

πŸ”§ Input Parameters

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.

πŸ’» Usage Examples

πŸ“ Basic Example

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/action-tflint@v1.0.0

πŸ”€ Advanced Example

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/action-tflint@v1.0.0
      with:
        tflint_config: modules/.tflint.hcl
        dir_filter: modules/aws,modules/gcp

πŸ”€ Advanced Example

Use 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/action-tflint@v1.0.0
      with:
        tflint_params: "--module --deep"
        dir_filter: modules

🀝 Contributing

Contributions are welcome! See CONTRIBUTING. This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ’¬ Support

If you have any questions or need help, please:

  • πŸ“ Create an issue
  • 🌟 Star this repository if you find it useful!