ci: test on Node 26, pin every action, fold the checks job in - #358
Merged
Merged
Conversation
Node 26 joins 22 and 24 across the three platforms. Every action is pinned to the commit its tag names, with the version as a comment, the way `less-loader` does it — each one read back from the tag before it was written down. The `test-checks` job is gone. Of its four combinations only one covered anything: `npm ci` installs eslint 10.10.0 and stylelint 17.15.0 already, which is what `eslint@10.x` and `stylelint@17.x` resolve to. The one that did — the oldest ESLint the peer range names — is a matrix entry now, so it runs the same command as every other test job. Its version is part of the concurrency group as well, or it would cancel the run it shares a platform and a Node version with.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three things.
Node 26 joins 22 and 24 across the three platforms.
Every action is pinned to the commit its tag names, with the version as a comment, the way
less-loaderdoes it —actions/checkout@v6.0.2,actions/setup-node@v6.4.0,codecov/codecov-action@v6.0.0, andactions/dependency-review-actionmoved fromv4tov5.0.0. Each SHA was read back from the tag withgit ls-remote refs/tags/<v>^{}before it was written down, rather than copied on trust.release.ymlwas already pinned.test-checksis gone. Of its four combinations only one covered anything:npm ciinstalls eslint 10.10.0 and stylelint 17.15.0 already, which is exactly whateslint@10.xandstylelint@17.xresolve to — so three of the four were the default install under another name. The one that wasn't, the oldest ESLint the peer range names, is a matrix entry now and runstest:coveragelike every other test job instead oftest:only.Two details worth flagging in review:
eslint 9.xentry and theubuntu / 22.x / latestentry share a group and cancel each other.includeentry creates a new combination rather than editing an existing one, because it would otherwise overwriteeslint-version. Expanded and checked: 10 test jobs, 10 distinct concurrency groups.The
lintjob gainscache: "npm", which it was missing.What kind of change does this PR introduce?
ci.
Did you add tests for your changes?
n/a — this is the test configuration. It checks itself: this PR's own run is the new matrix, including the ESLint 9 job and the three Node 26 jobs.
Does this PR introduce a breaking change?
No.
If relevant, what needs to be documented once your changes are merged or what have you already documented?
n/a.
Use of AI
AI was used. It read
less-loader's workflows for the pinning convention, verified each SHA against the action's own tag, checked which of the dropped job's combinations were real coverage by resolving the versions, and expanded the matrix to confirm the job count and that no two jobs share a concurrency group.🤖 Generated with Claude Code
https://claude.ai/code/session_01GzZci4NQeiqwdrVfd7dGXy
Generated by Claude Code