You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
actionlint
v1.0.0
This action allows you to quickly and easily run actionlint in your GitHub workflow using native Runner OS without 3rd party dependencies. It based on official action lint usage proposal from Use actionlint on GitHub Actions together with Problem Matchers.
- Action is platform-independent and tested on all the latest GitHub hosted runners (
ubuntu-latest
,macos-latest
,windows-latest
). - Uses GitHub cache for caching
actionlint
binaries for faster and more efficient workflow run.- 3rd party
actionlint
dependencies likeshellcheck
orpyflakes
are not cached, but action installs them if not present on the Runner.
- 3rd party
Just place in your GitHub workflow steps:
- name: actionlint
uses: DariuszPorowski/ghaction-actionlint@v1
You can modify the default configuration with optional inputs. All optional inputs are listed in the 📥 Inputs section.
Action returns some basic information. For more details, follow 📤 Outputs section.
- name: actionlint
id: actionlint #optional, id required only when outputs are used in the workflow steps later
uses: DariuszPorowski/ghaction-actionlint@v1
with:
matcher: false # optional
cache: false # optional
fail-on-error: false # optional
files: "tests/*.yml, tests/*.yaml" # optional, example on how to grab all .yml and .yaml files from the test directory
flags: "-ignore SC2086" # optional
- name: actionlint Summary
if: ${{ steps.actionlint.outputs.exit-code != 0 }} # example usage, do echo only when actionlint action failed
run: |
echo "Used actionlint version ${{ steps.actionlint.outputs.version-semver }}"
echo "Used actionlint release ${{ steps.actionlint.outputs.version-tag }}"
echo "actionlint ended with ${{ steps.actionlint.outputs.exit-code }} exit code"
echo "actionlint ended because '${{ steps.actionlint.outputs.exit-message }}'"
echo "actionlint found ${{ steps.actionlint.outputs.total-errors }} errors"
echo "actionlint checked ${{ steps.actionlint.outputs.total-files }} files"
echo "actionlint cache used: ${{ steps.actionlint.outputs.cache-hit }}"
exit ${{ steps.actionlint.outputs.exit-code }}
Name | Required | Type | Default value | Description |
---|---|---|---|---|
version |
false | string |
latest |
SemVer version of actionlint , recommended to keep default: latest |
matcher |
false | bool |
true |
Use matcher for GitHub annotations |
files |
false | string |
not set | To lint different workflow files (default searching directory is .github/workflows ), use comma-separated glob patterns, e.g., tests/*.yml, tests/*.yaml |
flags |
false | string |
not set | Extra flags to use with actionlint |
fail-on-error |
false | bool |
true |
Fail action on actionlint errors |
shellcheck |
false | bool |
true |
Use shellcheck with actionlint (and install if it does not exist) |
pyflakes |
false | bool |
true |
Use pyflakes with actionlint (and install if it does not exist) |
cache |
false | bool |
true |
Use GitHub cache for caching binaries for the next runs |
Name | Type | Description |
---|---|---|
version-semver |
string |
SemVer version of actionlint , recommended to keep default: latest |
version-tag |
string |
Use matcher for GitHub annotations |
exit-code |
int |
Exit status code based on actionlint exit status |
exit-message |
string |
Exit status message based on actionlint exit status |
total-errors |
int |
Total number of errors found during the linting |
total-files |
int |
Total number of checked files |
cache-hit |
bool |
GitHub cache has been used? |
Contributions to the project are welcome! Please follow Contributing Guide.
This project is distributed under the terms of the MIT license.