ci: fix release workflow failing on multi-package bumps - #439
Conversation
pnpm 11 enforces a clean working tree in `pnpm version` even with `--no-git-tag-version`, so the loop fails on the second package once the first bump dirties the tree. Switch to `npm version`, which respects the flag correctly. Also disable setup-node's automatic package-manager caching on the release job — caches are unnecessary for the one-shot publish run. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThe publish workflow is updated to address pnpm 11 compatibility issues. Package manager caching is explicitly disabled in the Node setup step, and the per-package version bump command switches from pnpm to npm to avoid working tree cleanliness constraints encountered when bumping multiple packages. ChangesPublish workflow CI/CD fixes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Stick with pnpm version and use its built-in --no-git-checks flag to bypass the clean-tree check, which is the documented escape hatch for this exact scenario. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
The latest release run (26020816084) failed at the Bump versions for changed packages step with:
pnpm versionruns a clean-tree check independent of--no-git-tag-version, so once the first package bump dirties the tree, every subsequent bump in the loop fails. pnpm exposes--no-git-checksas the documented escape hatch for this.--no-git-checksto the per-packagepnpm versioncall to bypass the clean-tree check.actions/setup-node's automatic package-manager caching on the release job (package-manager-cache: false). The release job is a one-shot publish — caching adds noise without benefit, and v6 of setup-node enables it by default whenever `packageManager` is set in `package.json`.Test plan
🤖 Generated with Claude Code