Home

Awesome

Hadolint Action

GitHub Action that runs Hadolint Dockerfile linting tool.

GitHub Action License Commitizen friendly semantic-release GitHub Workflow Status

Usage

Add the following step to your workflow configuration:

steps:
  - uses: actions/checkout@v3
  - uses: hadolint/hadolint-action@v3.1.0
    with:
      dockerfile: Dockerfile

Inputs

NameDescriptionDefault
dockerfileThe path to the Dockerfile to be tested./Dockerfile
recursiveSearch for specified dockerfile </br> recursively, from the project rootfalse
configCustom path to a Hadolint config file./.hadolint.yaml
output-fileA sub-path where to save the </br> output as a file to/dev/stdout
no-colorDon't create colored output (true/false)false
no-failNever fail the action (true/false)false
verboseOutput more information (true/false)false
formatThe output format. One of [tty | json | </br> checkstyle | codeclimate | </br> gitlab_codeclimate | codacy | sarif]tty
failure-thresholdRule severity threshold for pipeline </br> failure. One of [error | warning | </br> info | style | ignore]info
override-errorComma separated list of rules to treat with error severity
override-warningComma separated list of rules to treat with warning severity
override-infoComma separated list of rules to treat with info severity
override-styleComma separated list of rules to treat with style severity
ignoreComma separated list of Hadolint rules to ignore.<none>
trusted-registriesComma separated list of urls of trusted registries

Output

The Action will store results in an environment variable that can be used in other steps in a workflow.

Example to create a comment in a PR:

- name: Update Pull Request
  uses: actions/github-script@v6
  if: github.event_name == 'pull_request'
  with:
    script: |
      const output = `
      #### Hadolint: \`${{ steps.hadolint.outcome }}\`
      \`\`\`
      ${process.env.HADOLINT_RESULTS}
      \`\`\`
      `;

      github.rest.issues.createComment({
        issue_number: context.issue.number,
        owner: context.repo.owner,
        repo: context.repo.repo,
        body: output
      })

Hadolint Configuration

To configure Hadolint (for example ignore rules), you can create an .hadolint.yaml file in the root of your repository. Please check the Hadolint documentation.

🤝 Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

💛 Support the project

If this project was useful to you in some form, We would be glad to have your support. It will help keeping the project alive.

The sinplest form of support is to give a ⭐️ to this repo.

This project was originally created by Bruno Paz and incorporated into the Hadolint organization. If you appreciate the work done on this action, Bruno would be happy with your sponsorship.

Author

👤 Bruno Paz

📝 License

MIT