Repository navigation
build: move CI and Docker to Node.js 22 and 24 - #470
Conversation
Remove the changesets versioning workflow (changesets/action without a publish input, which only added a Release check to every commit on main), the generated .changeset/README.md and the root CHANGELOG.md stub. changeset publish stays the publish command. Refs #465 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The builder stage of the docs image copies the whole build context. Send only what the build needs (allow list: workspaces, build scripts, root manifests), so that local .env* files and other local files never reach the image, and drop dependencies and build output within. Closes #463 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin every action to a full commit SHA on its current major version (checkout v7, setup-node v7, cache v6, semantic PR title v6, ssh-agent v0.10, push action v1.3.0 instead of master), with Dependabot keeping the pins up to date. Replace the node_modules caches, whose key hashed a file that doesn't exist and which used ::set-output, by the npm cache of setup-node in CI; releases use no dependency cache. Drop the force-with-lease input of the push action, which doesn't exist (the input is force_with_lease) and so never had an effect. Refs #465 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Give Dependabot pull requests a ci: prefix, so that their titles pass the PR title check. Keep the commented-out release tests job as it was and state the release cache comment once. Refs #465 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ubuntu-latest now is Ubuntu 26.04, on which Playwright 1.56 can't install its browsers, so every test job fails (unrelated to the other changes). Pin the test job to ubuntu-24.04 until Playwright is upgraded. Refs #465 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Node.js 18 and 20 are end of life. Test on 22 and 24, lint and release on 24 (npm 11, needed for trusted publishing), build the docs image on node:24-alpine and update the development prerequisites in the README. engines and packageManager stay as they are. Closes #466 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Reviewer's GuideMoves CI, publishing, and Docker builds from Node.js 18/20-era tooling to Node.js 22/24, while modernizing caching, pinning GitHub Actions to immutable SHAs, constraining the Playwright runner image, and updating project documentation and maintenance configuration. File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Keep Node.js 24 (and 22/24 in the test matrix) in the conflicting setup-node steps, and run PR Evaluation on pull requests to `dev`, the default branch now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sourcery withdrew this approval because the latest commits introduced blocking findings.
Summary
Second of four stacked pull requests for #464. Stacked on #469: merge #469 first; until then this diff also shows its commits (only the last commit,
build: move CI and Docker to Node.js 22 and 24, belongs here).Node.js 18 (EOL 2025-04) and 20 (EOL 2026-04) are end of life:
node:24-alpine.engines.node(>=18.0.0) andpackageManager(npm@9.2.0) stay as they are: raisingengineschanges what consumers are told, which is a separate decision.Closes #466
Verification
npm ci(leavespackage-lock.jsonunchanged),npm run build,npm run lintpass.docker build .onnode:24-alpine: passes.npm version --no-git-tag-version,npm installafter the bump (no lockfile churn) andchangeset publish(passes--tag, so npm 11's prerelease guard doesn't trigger).Test checksfail before and after this change because packages without test files failwtr("Could not find any test files"); feat: add surface, font and dark mode controls #446 fixes the test scripts. See chore: remove leftovers, pin actions #469.Declined review findings
Dockerfile:npm run build --filter=ecc-docs...doesn't pass--filterto turbo (npm 11 warns and builds all workspaces). Pre-existing; the Dockerfile is only bumped here, as agreed (docs hosting is being moved separately). Fix when the docs build is reworked:npm run build -- --filter=ecc-docs.....npmrc:auto-install-peersis a pnpm option, npm 10/11 warn about it. Pre-existing, no effect; out of scope.apps/documentation:@types/node18.11.10. Pre-existing, harmless; follow-up.🤖 Generated with Claude Code
Summary by Sourcery
Modernize CI, release, Docker, and development requirements for current Node.js versions.
Enhancements:
Build:
CI: