devopsinfra/action-format-hcl

Sponsored OSS

By DevOps Infra

โ€ขUpdated about 8 hours ago

GitHub Action automatically formatting all HCL and TF files

Image
0

50K+

devopsinfra/action-format-hcl repository overview

โ GitHub Action for formatting HCL files

GitHub Action automatically formatting all HCLโ  and TFโ  files (.hcl, .tf, .tfvars).

โ ๐Ÿ“ฆ Available on

โ โœจ Features

Useful in combination with my other action devops-infra/action-commit-pushโ .

โ ๐Ÿ“Š 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/[email protected]
      with:
        list: false
        write: true
        ignore: config
        diff: false
        check: false
        recursive: true
        dir: modules
โ ๐Ÿ”ง Input Parameters
Input VariableRequiredDefaultDescription
listNofalseList files containing formatting inconsistencies.
writeNotrueOverwrite input files. Should be disabled if using check.
ignoreNo""Comma separated list of paths to ignore. Only for .hcl files.
diffNofalseDisplay diffs of formatting changes.
checkNofalseCheck if files are malformatted.
recursiveNotrueAlso process files in subdirectories.
dirNo"."Path to be checked. Current dir as default.
โ ๐Ÿ“ค Output Parameters
OutputDescription
files_changedList of changed files

โ ๐Ÿ’ป Usage Examples

โ ๐Ÿ“ Basic Example

Action can fail if malformed files will be found.

name: Check HCL
on:
  push
jobs:
  format-hcl:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v6

    - name: Fail on malformatted files
      uses: devops-infra/[email protected]
      with:
        check: true
โ ๐Ÿ”€ Advanced Example

Action can automatically format all HCL files and commit updated files back to the repository using my other action action-commit-pushโ .

name: Format HCL
on:
  push
jobs:
  format-hcl:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v6

    - name: Format HCL files
      uses: devops-infra/[email protected]

    - name: Commit changes to repo
      uses: devops-infra/action-commit-push@v1
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        commit_prefix: "[AUTO-FORMAT-HCL]"
โ ๐ŸŽฏ Use specific version

Pick the tag level based on your stability needs:

  • vX.Y.Z: exact immutable release (most predictable)
  • vX.Y: latest patch within one minor line
  • vX: latest patch within one major line
name: Use pinned action version
on: [push]
jobs:
  format-hcl:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - uses: devops-infra/[email protected]
        id: pin-patch

      - uses: devops-infra/[email protected]
        id: pin-minor

      - uses: devops-infra/action-format-hcl@v1
        id: pin-major

โ ๐Ÿค 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!

โ ๐Ÿงช End-to-End Validation

Use the manual workflow .github/workflows/manual-e2e-validate.yml to validate this action against the centralized E2E repository.

  • mode=image validates a published image tag (recommended for -test and -rc release checks).
  • mode=ref validates ref-oriented E2E paths against stable pinned action refs.

CI/CD automation also runs these E2E checks automatically:

  • Pull requests: E2E validation runs through reusable org workflows.
  • Release branch prepare: E2E validation runs against release candidate artifacts (-rc).
  • Release create: E2E validation runs against production release artifacts.

Example trigger inputs:

mode=ref
mode=image
image_tag=v1.2.3-test

โ Forking

To publish images from a fork, set these variables so Task uses your registry identities: DOCKER_USERNAME, DOCKER_ORG_NAME, GITHUB_USERNAME, GITHUB_ORG_NAME.

Two supported options (environment variables take precedence over .env):

# .env (local only, not committed)
DOCKER_USERNAME=your-dockerhub-user
DOCKER_ORG_NAME=your-dockerhub-org
GITHUB_USERNAME=your-github-user
GITHUB_ORG_NAME=your-github-org
# Shell override
DOCKER_USERNAME=your-dockerhub-user \
DOCKER_ORG_NAME=your-dockerhub-org \
GITHUB_USERNAME=your-github-user \
GITHUB_ORG_NAME=your-github-org \
task docker:build

Recommended setup:

  • Local development: use a .env file.
  • GitHub Actions: set repo variables for the four values above, and secrets for DOCKER_TOKEN and GITHUB_TOKEN.

Publish images without a release:

  • Run the (Manual) Release Create workflow with build_only: true to build and push images without tagging a release.

Tag summary

Content type

Image

Digest

sha256:0813d0747โ€ฆ

Size

37.8 MB

Last updated

about 8 hours ago

docker pull devopsinfra/action-format-hcl:latest-test

This week's pulls

Pulls:

607

Jul 6 to Jul 12