Lints Markdown files and shell scripts on every pull request to main. Also runnable manually via workflow_dispatch.
- Pull requests to
main(opened, reopened, or synchronized) when any of the following paths change:**/*.md**/.markdownlint**.sh.github/workflows/code-quality.yml
- Manual trigger via the GitHub Actions UI
Tool: DavidAnson/markdownlint-cli2-action
Config file: .markdownlint-cli2.jsonc (max line length 240, allowed inline HTML, excludes CLAUDE.md and .github/copilot-instructions.md)
Run locally:
markdownlint-cli2 '**/*.md'Tool: reviewdog/action-shellcheck — posts inline PR review comments via github-pr-review reporter.
Run locally:
shellcheck start.sh stop.sh reset_env_variables.sh.shellcheckrc suppressions (project-wide):
| Rule | Reason |
|---|---|
SC1091 |
Not following sourced files (reset_env_variables.sh) |
SC2153 |
False positives on variable name misspelling |
SC2317 |
False positive on unreachable commands in trap/signal handlers |
- Add a "Get changed files" step using
tj-actions/changed-files@v47scoped to the relevant paths. - Add a "Should lint X" step that writes the
any_changedoutput to$GITHUB_OUTPUT. - Add the lint step gated on
if: steps.should_lint_x.outputs.run == 'true'. - Update the paths filter under
on.pull_request.pathsto include the new file patterns.