dotCMS / dotCMS/core

Enable linting and validation of github actions through actionlint

Open
#34,706 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.