CI: run Pro compatibility smokes in hosted tests#4656
Conversation
WalkthroughThe Pro hosted CI workflow now runs Pro package JavaScript tests. A new RSpec spec validates workflow gating, compatibility smoke commands, the package test script, and the Node Renderer CI command. ChangesPro hosted CI validation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
|
Workflow Change Audit:
|
Greptile SummaryThis PR updates the hosted Pro CI path to run the full Pro package tests. The main changes are:
Confidence Score: 5/5This looks safe to merge after a small test hardening cleanup.
react_on_rails/spec/react_on_rails/hosted_ci_workflow_spec.rb Important Files Changed
Reviews (1): Last reviewed commit: "CI: route Pro compatibility smokes throu..." | Re-trigger Greptile |
Review: CI: run Pro compatibility smokes in hosted testsOverviewSmall, well-scoped fix to Verification performed
Code quality / style
Risk / performance
VerdictCorrect, minimal fix with a regression test tightly scoped to the actual bug. No blocking issues found. |
Corrective exact-head QA evidenceIndependent QA passed locally on exact PR head Key results:
QA lane: |
|
+ci-status |
CI StatusHead SHA: Only the required gate is active unless hosted CI is requested. |
|
+ci-force-full |
Force-Full Hosted CI RequestedTriggered 9 workflow(s) for View progress in the Actions tab. |
QA evidence v1 — qa-pro-4644qa_evidence_version: v1 hosted_replay:
immutable_log_observations:
packed_non_rsc_evidence:
local_evidence_summary:
process_gap:
|
Address-review summaryScan scope: full PR history; no prior address-review checkpoint. Mattered
Optional
Skipped
Deferred-work tracking: dropped as not worth tracking; the suggestion is optional future-proofing rather than a current defect. Next default scan starts after this comment. Say |
QA evidence v1 — corrected replay markerThis restates the final-head QA result in the canonical replayable schema. The prior QA evidence remains accurate; only its hidden marker syntax was non-canonical.
|
…t-policy * origin/main: (33 commits) Release: add auditable accelerated RC async gates (#4669) Release: handle optional required-check metadata (#4685) Release: forward-port post-pull prerelease guard (#4680) Forward-port stable RSC 19.2.1 to main (#4672) Forward-port Pro license metadata to main (#4668) Docs: clarify local benchmark workflow (#4665) Fix Hacker News demo-fleet smoke path (#4664) Release: reuse verified ShakaPerf pre-run evidence (#4662) Release: require strict HEAD evidence before retry guidance (#4661) Fix: support React 18 non-RSC streaming (#4658) Docs: compare Next.js with Rails async-props streaming (#4651) Docs: add reusable demo fleet RC update prompt (#4649) CI: run Pro compatibility smokes in hosted tests (#4656) Fix ambiguous prerelease retries (#4654) Test: add packaged Pro smokes for React 16 and 17 (#4652) docs: clarify release version ownership and RSC promotion (#4650) [Pro] Keep react-on-rails-rsc out of non-RSC entry graphs (fixes React 18 builds on rc.9) (#4641) ci: make benchmark proof gates replayable (#4626) Test: keep React 19 coverage out of the React 18 lane (#4635) Redact prerender secrets and harden service checks (#4624) ... # Conflicts: # internal/contributor-info/release-train-runbook.md
…taller * origin/main: (33 commits) Release: add auditable accelerated RC async gates (#4669) Release: handle optional required-check metadata (#4685) Release: forward-port post-pull prerelease guard (#4680) Forward-port stable RSC 19.2.1 to main (#4672) Forward-port Pro license metadata to main (#4668) Docs: clarify local benchmark workflow (#4665) Fix Hacker News demo-fleet smoke path (#4664) Release: reuse verified ShakaPerf pre-run evidence (#4662) Release: require strict HEAD evidence before retry guidance (#4661) Fix: support React 18 non-RSC streaming (#4658) Docs: compare Next.js with Rails async-props streaming (#4651) Docs: add reusable demo fleet RC update prompt (#4649) CI: run Pro compatibility smokes in hosted tests (#4656) Fix ambiguous prerelease retries (#4654) Test: add packaged Pro smokes for React 16 and 17 (#4652) docs: clarify release version ownership and RSC promotion (#4650) [Pro] Keep react-on-rails-rsc out of non-RSC entry graphs (fixes React 18 builds on rc.9) (#4641) ci: make benchmark proof gates replayable (#4626) Test: keep React 19 coverage out of the React 18 lane (#4635) Redact prerender secrets and harden service checks (#4624) ...
Summary
Relevant Pro package changes selected hosted Pro tests, but that workflow only executed the Node renderer test command. The packed React 16/17 compatibility smoke added in #4652 could therefore be skipped while the hosted run still appeared green.
The selected Pro package job now runs the full
react-on-rails-protest command, which includes the isolated packed React 16.14 and 17.0 webpack/SSR smokes, while preserving the dedicated Node renderer test step. A workflow contract spec ties the selectedrun_pro_testsroute to both commands so this gap cannot silently recur.Fixes #4644.
Related: #4652
Validation
bundle exec rspec spec/react_on_rails/hosted_ci_workflow_spec.rbfailed before the workflow edit because the selected job lackedpnpm --filter react-on-rails-pro test; it now passes with 1 example and 0 failures.actionlint .github/workflows/pro-test-package-and-gem.yml— passed.script/ci-changes-detector-test.bash— passed all 77 detector cases; Pro changes selectrun_pro_tests=trueandrun_js_tests=false.pnpm --filter react-on-rails-pro test— passed 620 package tests plus packed React 16.14.0 and 17.0.2 install, webpack, and SSR runtime smokes.pnpm --filter react-on-rails-pro-node-renderer run ci— passed; the existing Node renderer path remains covered.pnpm run lint,pnpm start format.listDifferent, andpnpm run nps check-typescript— passed.(cd react_on_rails && BUNDLE_GEMFILE=../Gemfile bundle exec rubocop)— passed.git diff --check origin/main...HEADand the pre-push branch lint hook — passed.yamllint .github/remains red on the repository's existing document-start and 80-column baseline; before/after comparison found no new finding from this diff..agents/bin/validate --changedpassed dependency setup, docs, lint, formatting, TypeScript, builds, Pro dummy bundles, all Pro package/packed compatibility tests, and Pro Node renderer tests. Its later broad OSS generator phase was stopped after unrelated existingnpm ERESOLVEretries forreact-on-rails-rsc@19.2.1-rc.0versus Pro's^19.0.5optional peer plus environment/config failures; focused changed-surface gates above are complete.Workflow and rollout evidence
.github/workflows/pro-test-package-and-gem.yml; a post-merge exercise issue is required before merge.ready-for-hosted-ci,force-full-hosted-ci. Force-full is appropriate because the behavior being repaired is the hosted selector-to-Pro-job route itself; the final-head workflow log must explicitly show both packed React versions.checklist+replay.main. The stale-base race control is to require those affected heads to update to currentmainand rerun current hosted Pro CI before merge.Review receipt and churn
0.144.2reviewed committed branchorigin/main...d5c4fcd0dfrom immutable basec74239fab; result: clean, with no accepted or rejected findings./simplifypass were unavailable because the local Claude CLI is not authenticated (Not logged in); no substitute engine weakened the primary clean review.Merge qualification
mainbeta phase with release tracker #3823 indevelopmentmode; standard merge qualification applies.auto_merge_when_gates_passfrom the active maintainer batch.d5c4fcd0da526e924f54061d383627edc8c918d8.MUST-FIXorDISCUSSitems and zero unresolved threads.2026-07-14T05:48:16Zwithcomplete_allowed: true, no violations, and no unknown fields.mainadvanced only through unrelated Fix ambiguous prerelease retries #4654 release-rake/docs/spec files; there is no overlap with this PR's workflow and contract-spec paths.Confidence note:
Summary by CodeRabbit