Command Line Interface¶
GH-Lint comes as an executable .jar
file that can be run from the command line.
Installation¶
GitHub Releases¶
Download the latest "CLI executable" from the GitHub Releases page.
GitHub pre-releases¶
Most commits to the repository are built with GitHub Actions with a ready to use artifact.
To get the latest -SNAPSHOT
version,
download the "CLI Application" artifact from one of the workflow runs on main
.
It's possible to download the same artifacts for individual PR commits as well.
Execution¶
Regardless of where you downloaded the .jar
file, you can run it from the command line.
Cross-platform¶
The .jar
file can be run with Java on all operating systems:
java -jar ghlint.jar
Mac, Linux, Unix¶
On Unix systems (Linux, Mac), you can make the .jar
executable and run it directly:
mv ghlint.jar ghlint
chmod +x ghlint
./ghlint --version
Windows¶
On Windows, you can simulate the same behavior with a batch file (ghlint.bat
in the same folder as the .jar
file):
@echo off
java -jar "%~dp0\ghlint.jar" %*
Productivity tip (all platforms)¶
If you put the executable .jar
(or .bat
) file's folder on the PATH
, you can run it from anywhere:
ghlint my-workflow.yml
Usage¶
Usage: ghlint [<options>] <files>...
GitHub Actions Linter (GH-Lint). A tool to lint GitHub Actions workflows and
actions. See https://ghlint.twisterrob.net for more information.
Reporting:
--exit / --ignore-failures Exit with non-zero code if there are findings.
(default: --ignore-failures)
--console / --silent Output to console. --silent does not affect
--verbose, only findings. (default: --console)
--ghcommands Output GitHub Commands (warnings). (default: off)
--sarif=<path> Output a SARIF file.
Options:
--root=<path> Root directory of the repository. (default: .)
--verbose Prints more information. (default: off)
-v, --version Prints the version and exits.
-h, --help Show this message and exit
Arguments:
<files> Workflow YML files to check for problems.
Example usages:
**Lint a single workflow**: `$ ghlint .github/workflows/main.yml`
**Lint all workflows in GitHub Actions CI**: `$ ghlint --verbose
--sarif=report.sarif.json .github/workflows/*.yml`
**Lint a single action in repository root.**: `$ ghlint action.yml`
**Lint for CI actions in a directory**: `$ ghlint actions/my-action/action.yml`