Enable linting and validation of github actions through actionlint
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Description
Linting of workflows through actionlint is a good way to prevent basic security and syntax errors from making their way into the pipeline that otherwise would block the pipeline and require follow up fixes. This has a big ROI with hardly any effort. We already have actionlint available in our mise config. We do need considering whether we want to refactor our husky commit hook before adding this to the hook, but even validation in the pr workflow will help to provide basic checks of workflows that are otherwise not tested until they get into main.
Acceptance Criteria
- [] Developers can easily runn actionlint to test
- [] We should enable first but configure as non-blocking through github env vars to enable us to introduce the functionality and fix the existing issues in an existing PR before enforcement.
- [] Should be run in the commit hook but only when there are changes to the github workflows. Actionlint can detect more when there is context between files, so it is best to check all the workflows in the folder and not an individual file.
Priority
Medium
Additional Context
We waste a lot of time fixing issues caused by merged PRs with simple syntax errors. It takes a lot of time to fully test with separate workflow branch, but it provides more confidence in a single line change if we know there is no security or syntatical/formatting issue introduces.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the mise config, the husky commit hook, the pull-request workflow, and the GitHub workflows folder. Check how actionlint is currently exposed and how workflow changes are detected, then run it across the workflows with non-blocking behavior. Done means developers can invoke actionlint easily, the PR check is enabled without enforcement, and the hook checks all workflows only when relevant files change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd, devops, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100