Skip to content

Conversation

@suisuss
Copy link

@suisuss suisuss commented Jan 21, 2026

  • Replace Node.js with Bun for all Docker stages
  • Update package.json scripts to use bun instead of tsx/pnpm
  • Update Helm values for staging/prod (bun commands, remove NODE_OPTIONS)
  • Update K8s manifests to use pre-built Bun-based images
  • Add setup-bun to PR checks workflow
  • Add bun.lock for dependency tracking

Bun's AsyncLocalStorage implementation supports Sentry v10+ tracing.

- Replace Node.js with Bun for all Docker stages
- Update package.json scripts to use bun instead of tsx/pnpm
- Update Helm values for staging/prod (bun commands, remove NODE_OPTIONS)
- Update K8s manifests to use pre-built Bun-based images
- Add setup-bun to PR checks workflow
- Add bun.lock for dependency tracking

Bun's AsyncLocalStorage implementation supports Sentry v10+ tracing.
- Add dotenv-expand to properly load .env variables in tests
- Update tests/setup.ts to expand env variable interpolation
- Fix graceful-shutdown tests for Bun's SIGTERM behavior (exit 143)
- Fix workflow-runner tests for Bun's signal handling differences
- Remove pnpm setup and caching
- Use bun install --frozen-lockfile
- Use bun run for all scripts
- Cache Bun dependencies using bun.lock hash
- Fix mockUser type in rpc-preferences-routes.test.ts (add isAnonymous)
@suisuss suisuss requested review from a team, OleksandrUA, eskp, joelorzet and taitsengstock and removed request for a team January 21, 2026 06:29
// Exit code 1 = system termination (SIGTERM)
expect(result.exitCode).toBe(1);
// Exit code 1 (Node.js) or 143 (Bun: 128 + SIGTERM) = system termination
expect([1, 143]).toContain(result.exitCode);

Choose a reason for hiding this comment

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

Shouldn’t we just rely on Bun’s exit code? Since we’re completely migrating the runner, I think this could potentially add edge cases.

Copy link

@joelorzet joelorzet left a comment

Choose a reason for hiding this comment

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

Honestly, it looks amazing. I’d definitely like to give it a try. That said, I’d prefer to do it in a separate environment to keep staging safe for a few days, since this might introduce unexpected issues as we continuously fetch updates from Vercel’s repo.

# =============================================================================
# Stage 1: Dependencies (Bun for fast installs)
# =============================================================================
FROM oven/bun:1.2-alpine AS deps

Choose a reason for hiding this comment

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

@suisuss I see 1.3 is available. Should we give newest version a try?

@suisuss suisuss changed the title feat/KEEP-1241-bun-upgrade WIP/DEPLAYED: feat/KEEP-1241-bun-upgrade Jan 26, 2026
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