Skip to content

Migrate CI from Volta to Corepack#9910

Merged
chrisgervang merged 1 commit intomasterfrom
migrate-to-corepack
Dec 15, 2025
Merged

Migrate CI from Volta to Corepack#9910
chrisgervang merged 1 commit intomasterfrom
migrate-to-corepack

Conversation

@chrisgervang
Copy link
Copy Markdown
Collaborator

@chrisgervang chrisgervang commented Dec 11, 2025

Volta is now unmaintained, so it's in our interest to move away from it to an official solution.

Benchmark: Currently it takes a minute to install yarn packages (example). This change maintains a minutes (see this run), so I feel confident this doesn't have a negative impact on our build times.

Summary

Migrates the project's automated build system from Volta to Corepack for managing Node.js and Yarn versions in GitHub Actions workflows.

This change modernizes the CI infrastructure while maintaining backward compatibility for local development - developers can continue using Volta, or switch to nvm, fnm, or any other Node version manager.

Changes

  • Added .nvmrc file with Node 18.19.0 for compatibility with multiple version managers
  • Updated .github/workflows/test.yml - All 3 jobs now use actions/setup-node + Corepack
  • Updated .github/workflows/release.yml - Release job now uses Corepack
  • Updated .github/workflows/website.yml - Website deployment now uses Corepack with improved caching
  • Updated CONTRIBUTING.md - Documentation reflects CI uses Corepack, with local dev flexibility
  • Preserved Volta configuration in package.json for developers who prefer it

Technical Details

  • Replaced volta-cli/action with actions/setup-node using node-version-file: '.nvmrc'
  • Added corepack enable yarn step in all workflows
  • Enabled yarn caching via actions/setup-node for faster builds
  • Leveraged existing packageManager: "yarn@1.22.19" field for Corepack

Testing

CI will validate this change. The cache behavior will be monitored to ensure proper functionality.


Note

Switches CI from Volta to Corepack via actions/setup-node with .nvmrc and yarn caching; adds .nvmrc and updates contributing docs.

  • CI/Workflows:
    • Migrate Node setup from volta-cli/action to actions/setup-node across workflows/{test,release,website}.yml using .nvmrc and yarn cache.
    • Enable Corepack (corepack enable yarn) in all workflows.
  • Tooling:
    • Add .nvmrc specifying Node 18.19.0.
  • Docs:
    • Update CONTRIBUTING.md to note CI uses Corepack and allow local dev with Volta/NVM or other managers.

Written by Cursor Bugbot for commit 5c142a9. This will update automatically on new commits. Configure here.

Replace volta-cli/action with actions/setup-node and Corepack in all
GitHub Actions workflows. Add .nvmrc file for Node version consistency
across different version managers.

Changes:
- Add .nvmrc with Node 18.19.0
- Update test.yml, release.yml, and website.yml to use Corepack
- Update CONTRIBUTING.md to reflect CI uses Corepack
- Volta configuration preserved in package.json for developers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Comment thread .nvmrc
@@ -0,0 +1 @@
18.19.0
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've switched to fnm, which is a drop-in replacement for nvm written in rust. I figure most people are using either of these since they are the "official" solutions on https://nodejs.org/en/download

@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 91.055%. remained the same
when pulling 5c142a9 on migrate-to-corepack
into 528bb50 on master.

@chrisgervang
Copy link
Copy Markdown
Collaborator Author

Rerunning the jobs show the cache hit decreased install times from from 1 minute to 30 seconds.

uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version-file: '.nvmrc'
cache: 'yarn'
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of note, the volta action doesn't actually include a yarn cache so this input never did anything

https://github.com/volta-cli/action

Copy link
Copy Markdown
Collaborator

@felixpalmer felixpalmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to see this 👍 , I gave up on Volta on my local machine some time ago (#9577 (comment) & #9523 for context)

@chrisgervang chrisgervang merged commit b0134f0 into master Dec 15, 2025
9 checks passed
@chrisgervang chrisgervang deleted the migrate-to-corepack branch December 15, 2025 22:17
felixpalmer pushed a commit that referenced this pull request Jan 16, 2026
Replace volta-cli/action with actions/setup-node and Corepack in all
GitHub Actions workflows. Add .nvmrc file for Node version consistency
across different version managers.

Changes:
- Add .nvmrc with Node 18.19.0
- Update test.yml, release.yml, and website.yml to use Corepack
- Update CONTRIBUTING.md to reflect CI uses Corepack
- Volta configuration preserved in package.json for developers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants