chore: replace Super-Linter to streamline ci-cd#412
Conversation
There was a problem hiding this comment.
Pull request overview
This PR streamlines the CI/CD linting setup by removing Super-Linter and replacing it with explicit, repo-owned lint/validation steps, while also relocating linter configuration into root-level files.
Changes:
- Replaces Super-Linter in the GitHub Actions linter workflow with discrete steps (ESLint, markdownlint-cli2, yamllint, actionlint, JSON/JSONC validation).
- Updates
preflightand documentation to use the new root-level lint config locations and tooling. - Adds root-level
.yamllint.ymland.markdownlint.jsonconfigs, plus an actionlint config under.github/.
Reviewed changes
Copilot reviewed 6 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
preflight |
Updates local preflight lint commands to match the new tooling/layout (yamllint, markdownlint-cli2, eslint). |
package.json |
Bumps ESLint, adds markdownlint-cli2, and introduces a markdown lint script. |
package-lock.json |
Locks dependency updates corresponding to ESLint bump and markdownlint-cli2 addition. |
eslint.config.js |
Adjusts ESLint targeting after moving/removing .github/linters JS configs. |
SECURITY.md |
Updates documentation references for the ESLint config location. |
.yamllint.yml |
Introduces repo yamllint rules/ignore patterns. |
.markdownlint.json |
Introduces markdownlint rule customizations (e.g., allowed fenced code languages). |
.github/workflows/linter.yml |
Replaces Super-Linter with explicit lint/validation steps. |
.github/copilot-instructions.md |
Updates contributor instructions to reflect new lint config locations/tools. |
.github/actionlint.yaml |
Adds actionlint configuration file. |
| ## check TypeScript and JavaScript | ||
| echo ' checking TypeScript & JavaScript w/ eslint, see .github/linters/eslint.config.js' | ||
| npx eslint -c .github/linters/eslint.config.js "scripts/*.js" "src/*.ts" ".github/linters/*.js" \ | ||
| echo ' checking TypeScript & JavaScript w/ eslint, see eslint.config.js' | ||
| npx eslint "scripts/*.js" "src/*.ts" \ | ||
| || { echo ' *** ERROR eslint TypeScript & JavaScript check failed.' ; exit 1 ; } |
There was a problem hiding this comment.
Preflight runs ESLint only on scripts/*.js and src/*.ts, but CI linting runs npx eslint .. This can let config-file lint failures (e.g. eslint.config.js) slip through locally; consider aligning preflight with CI (or clearly documenting the intended difference).
| run: npx eslint . | ||
|
|
||
| - name: "Lint Markdown" | ||
| run: npx markdownlint-cli2 "**/*.md" "#node_modules" "#dist" |
There was a problem hiding this comment.
Markdown linting is run via markdownlint-cli2, but no explicit configuration is provided. Since this PR adds .markdownlint.json with custom rules, consider ensuring the workflow actually loads that config (otherwise the new rules may not be enforced).
| run: npx markdownlint-cli2 "**/*.md" "#node_modules" "#dist" | |
| run: npx markdownlint-cli2 -c .github/linters/.markdownlint.json "**/*.md" "#node_modules" "#dist" |
| pip install --quiet yamllint | ||
| yamllint . |
There was a problem hiding this comment.
YAML linting installs an unpinned yamllint version and runs it without specifying the repo config. For reproducible CI and to ensure .yamllint.yml rules/ignores are applied, consider pinning the yamllint version and invoking it with -c .yamllint.yml.
| pip install --quiet yamllint | |
| yamllint . | |
| pip install --quiet yamllint==1.35.1 | |
| yamllint -c .github/linters/.yaml-lint.yml . |
chore: replace Super-Linter to streamline ci-cd