Skip to content

Conversation

@justin808
Copy link
Member

@justin808 justin808 commented Nov 22, 2025

Summary

Pins Node.js version to 22.11.0 (LTS) in CI workflows to avoid a V8 bug that causes crashes during Will not publish package with private: true use --private flag to force publishing. and other operations.

Changes

  • Pin to in lint-js-and-ruby workflow
  • Standardize Playwright workflow to use yarn run v1.22.22
    info Commands available from binary scripts: acorn, attw, baseline-browser-mapping, browserslist, create-jest, cssesc, ejs, escodegen, esgenerate, eslint, eslint-config-prettier, esparse, esvalidate, github-codeowners, he, highlight, honeybadger-checkins-sync, import-local-fixture, jake, jest, jiti, js-yaml, jsesc, json5, knip, knip-bun, loose-envify, lz-string, marked, mime, mkdirp, nanoid, nodetouch, nps, parser, pino, pino-pretty, prettier, ps-tree, publint, regjsparser, resolve, semver, stylelint, ts-jest, tsc, tsserver, update-browserslist-db, uuid, which
    info Project commands
    • build
      yarn workspace react-on-rails run build && yarn workspace react-on-rails-pro run build
    • build-watch
      yarn workspaces run build-watch
    • check
      yarn run lint && yarn workspaces run check
    • clean
      yarn workspaces run clean
    • lint
      nps eslint
    • lint:scss
      stylelint "spec/dummy/app/assets/stylesheets//*.scss" "spec/dummy/client//*.scss"
    • postinstall
      test -f .lefthook.yml && test -d .git && command -v bundle >/dev/null 2>&1 && bundle exec lefthook install || true
    • publish
      yarn workspaces run publish
    • start
      nps
    • test
      yarn workspaces run test
    • type-check
      yarn workspaces run type-check
    • yalc
      yarn workspaces run yalc
    • yalc:publish
      yarn workspaces run yalc:publish
      Done in 0.03s. instead of bare yarn install v1.22.22
      [1/4] Resolving packages...
      [2/4] Fetching packages...
      [3/4] Linking dependencies...
      [4/4] Building fresh packages...
      $ test -f .lefthook.yml && test -d .git && command -v bundle >/dev/null 2>&1 && bundle exec lefthook install || true
      Done in 2.45s. commands for consistency

References

Testing

  • ✅ No code changes, only CI configuration
  • ✅ Workflows will use pinned Node.js version on next run

Context

This is part of preparing for the monorepo node-renderer package. This small fix can merge independently.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated Node.js version pinning in build workflows to use a specific LTS patch version, improving build stability and consistency.
    • Standardized script invocation syntax in test workflows to align with best practices.

✏️ Tip: You can customize this high-level summary in your review settings.

Pin Node.js version to 22.11.0 (LTS) in CI workflows to avoid V8 bug
that causes crashes during yalc publish and other operations.

Reference: nodejs/node#56010

Also standardize Playwright workflow to use 'yarn run' instead of bare 'yarn'
commands for consistency with other workflows.

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

Co-Authored-By: Claude <[email protected]>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 22, 2025

Walkthrough

Pinned Node.js version to a specific LTS patch in the lint workflow and standardized script invocations in the Playwright workflow to use explicit yarn run commands instead of shorthand syntax.

Changes

Cohort / File(s) Summary
Node.js Version Pinning
.github/workflows/lint-js-and-ruby.yml
Changed node-version from 22 to '22.11.0' with added comments explaining the rationale and linking to a Node.js issue.
Script Invocation Standardization
.github/workflows/playwright.yml
Updated build and test script invocations to use explicit yarn run form: yarn run build:test and yarn run test:e2e instead of shorthand syntax.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • Simple version pinning change with documentation
  • Repetitive and straightforward script invocation updates across two workflow files
  • No logic or error handling modifications

Possibly related PRs

Suggested labels

review-needed, full-ci

Poem

🐰 A script runs true with "yarn run" so clear,
Node's steady hand at 22.11.0 we hold dear,
CI workflows refined with every line,
Tests march forward—oh, how they shine!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: pinning Node.js to a specific version to address a V8 crash bug. This matches the primary objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-nodejs-version-pinning

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/lint-js-and-ruby.yml (1)

98-100: Consider tracking when this pin can be removed.

This is a temporary fix for a known bug. To avoid the pin being forgotten, consider opening a tracking issue to revisit and remove this version constraint once the upstream Node.js issue (nodejs/node#56010) is resolved and a fix is available.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d433348 and f169303.

📒 Files selected for processing (2)
  • .github/workflows/lint-js-and-ruby.yml (1 hunks)
  • .github/workflows/playwright.yml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1687
File: spec/dummy/package.json:0-0
Timestamp: 2025-01-23T18:20:45.824Z
Learning: When adding or updating dependencies in spec/dummy/package.json, maintain version consistency with other package.json files in the codebase to avoid potential version conflicts.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: dummy-app-integration-tests (3.4, 22, latest)
  • GitHub Check: rspec-package-tests (3.4, latest)
  • GitHub Check: examples (3.4, latest)
  • GitHub Check: build
  • GitHub Check: pro-lint-js-and-ruby
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: build-dummy-app-webpack-test-bundles
  • GitHub Check: claude-review
🔇 Additional comments (3)
.github/workflows/playwright.yml (2)

81-81: Script invocation standardization looks good.

Using explicit yarn run form aligns with standardized script invocation across workflows. Both forms are equivalent, so this is a safe style improvement.

Also applies to: 85-85


54-54: Heads up: Node version differs between workflows.

This workflow pins Node to 20 while lint-js-and-ruby.yml pins to 22.11.0 to avoid a V8 bug. If intentional (multi-version testing), all good. If inadvertent, consider whether playwright.yml should also pin to a known-good version.

Also applies to: 54-54

.github/workflows/lint-js-and-ruby.yml (1)

98-100: Node.js version pin is well-motivated and documented.

Pinning to 22.11.0 to avoid the V8 bug is appropriate, and the comment provides clear rationale with a reference to the upstream issue. This is good practice for addressing known runtime issues in CI.

@justin808 justin808 merged commit 8f31aca into master Nov 22, 2025
28 checks passed
@justin808 justin808 deleted the update-nodejs-version-pinning branch November 22, 2025 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants