ci: add Node matrix workflow (18.x, 20.x, 22.x)#15
Conversation
Complements validate.yml (which pins to .nvmrc=20) by smoke-testing 'npm ci && npm test' on the full engine band declared in package.json (>= 18.0.0 after #14). Catches breakage on newer Node versions before downstream users hit it. Originally proposed by @cryptofixyup in #13. Refinements vs the original: - Renamed to node-matrix.yml so the intent is explicit alongside validate.yml, smoke.yml, etc. - Pinned actions to the versions used elsewhere in the repo (checkout@v6, setup-node@v6) per the actions group bump in #11. - Dropped 'npm run build --if-present' (no build script in root). - Added 'permissions: contents: read' to follow the principle of least privilege. - Added concurrency group to cancel superseded runs. - Added 'fail-fast: false' so all matrix legs report independently rather than aborting on the first failure. Co-authored-by: cryptofixyup <[email protected]>
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThis PR adds multi-package release verification by introducing a version consistency checker ( ChangesRelease Version Verification
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Actions workflow to run a basic CI smoke test across the Node.js versions claimed by the repository’s engines.node range, complementing the existing validate.yml workflow (which pins Node via .nvmrc).
Changes:
- Introduces a new
node-matrix.ymlworkflow that runsnpm ciandnpm teston Node 18.x, 20.x, and 22.x. - Adds least-privilege
permissions: contents: readplusconcurrencycancellation andfail-fast: falsefor matrix legs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Multi-Node smoke test. Complements validate.yml (which pins to .nvmrc = | ||
| # Node 20) by exercising npm ci + npm test on the engine band declared in |
…ion test - npm test/test:coverage scripts now use bash glob expansion via `bash -c 'shopt -s nullglob; node --test scripts/__tests__/*.test.mjs'` so Node 18/20 (which don't support glob in --test) work alongside Node 22/24. - New scripts/check-versions.mjs runs before each publish workflow (cli, mcp, pysdk) and asserts that the package.json version matches the tag-implied version. Catches the class of bug where a tag like cli-v0.2.0 publishes a 0.1.1 package because version bump was missed. 12 regression tests cover semver malformedness, tag/version mismatch, refs/tags/ prefix tolerance, pyproject.toml read path, and unknown-prefix tolerance. Closes #15.
…ersions Add googleapis/release-please-action@v4 wired for the monorepo: release-please-config.json declares 4 per-component tracks (root, cli, mcp, pysdk), .release-please-manifest.json is the source of truth for current versions, and .github/workflows/release-please.yml triggers on every push to main. Component-scoped tags (cli-vX.Y.Z, mcp-vX.Y.Z, pysdk-vX.Y.Z) drive the existing publish-*.yml workflows on merge of each Release PR. Bump publishable components past the v0.2.0 work so the latest CI fixes ship: - cli 0.1.1 -> 0.1.2 (Node 18/20 test glob fix from #15) - mcp 0.1.1 -> 0.1.2 (publish-time version regression guard from #15) - pysdk 0.1.0 -> 0.1.1 (same regression guard wired into publish-pysdk.yml) mcp/server.json version mirrored so the MCP Registry stays in sync with the npm package. Manifest seeded with the new versions so release-please doesn't re-open a redundant Release PR on first run. docs/ops/release-process.md added with the normal automated flow + manual override fallback + check-versions guard semantics + troubleshooting table. docs/ops/npm-org-setup.md now points at it for day-to-day flow. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Summary
Adds a Node-version matrix smoke workflow that runs
npm ci && npm teston Node 18.x, 20.x, 22.x — the full engine band declared inpackage.jsonafter #14 lowered the minimum to>=18.0.0. Complementsvalidate.yml(which pins to.nvmrc=20and only runs on registry/schema/script/package paths) by catching breakage on the other Node versions our engines claim to support.Credit
Originally proposed by @cryptofixyup in #13. This PR cherry-picks their workflow with refinements:
node-matrix.ymlso the intent is explicit alongside our existingvalidate.yml,smoke.yml, etc.checkout@v6/setup-node@v6per the actions group bump in chore(actions): bump the actions group across 1 directory with 6 updates #11.npm run build --if-present(no build script in root).permissions: contents: read(least privilege).concurrency: cancel-in-progressto drop superseded runs.fail-fast: falseso all matrix legs report independently.Test plan
npm ci && npm testin CI on this PR.🤖 Generated with Claude Code
Co-authored-by: cryptofixyup <[email protected]>
Generated by Claude Code
Summary by CodeRabbit
Release Notes
Chores
Tests