action-format-hcl
GitHub Action automatically formatting all HCL and TF files
50K+
GitHub Action automatically formatting all HCLโ and TFโ files (.hcl, .tf, .tfvars).
Useful in combination with my other action devops-infra/action-commit-pushโ .
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:
list: false
write: true
ignore: config
diff: false
check: false
recursive: true
dir: modules
| Input Variable | Required | Default | Description |
|---|---|---|---|
list | No | false | List files containing formatting inconsistencies. |
write | No | true | Overwrite input files. Should be disabled if using check. |
ignore | No | "" | Comma separated list of paths to ignore. Only for .hcl files. |
diff | No | false | Display diffs of formatting changes. |
check | No | false | Check if files are malformatted. |
recursive | No | true | Also process files in subdirectories. |
dir | No | "." | Path to be checked. Current dir as default. |
| Output | Description |
|---|---|
files_changed | List of changed files |
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
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]"
Pick the tag level based on your stability needs:
vX.Y.Z: exact immutable release (most predictable)vX.Y: latest patch within one minor linevX: latest patch within one major linename: 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
Contributions 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:
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:
-rc).Example trigger inputs:
mode=ref
mode=image
image_tag=v1.2.3-test
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:
.env file.DOCKER_TOKEN and GITHUB_TOKEN.Publish images without a release:
(Manual) Release Create workflow with build_only: true to build and push images without tagging a release.Content type
Image
Digest
sha256:0813d0747โฆ
Size
37.8 MB
Last updated
about 8 hours ago
docker pull devopsinfra/action-format-hcl:latest-testPulls:
607
Jul 6 to Jul 12