Skip to content

build(cli): add a Windows CI smoke job for the spawn path - #1408

Merged
Simon Ingeson (smonn) merged 1 commit into
mainfrom
wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci
Jul 30, 2026
Merged

build(cli): add a Windows CI smoke job for the spawn path#1408
Simon Ingeson (smonn) merged 1 commit into
mainfrom
wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci

Conversation

@smonn

@smonn Simon Ingeson (smonn) commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Unit tests take the platform as a parameter, so they pass on Linux whatever win32 does — which is how WIZ-11274 (spawn npm ENOENT) reached a customer. Only a Windows runner reaches CreateProcess, so this job boots the bundle and spawns npm through the real resolveNpmCommand and defaultSpawn.

The ticket asked for typecheck plus the test suite. Typecheck is platform-independent, and around 30 test files assert POSIX separators or file modes, so the suite fails on win32 for reasons unrelated to the product — WIZ-11279 tracks that. Neither step would have caught WIZ-11274; the spawn smoke does.

Closes WIZ-11275

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 3 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 44f058dd-f6a2-4a40-80ea-cdfecb78db12

📥 Commits

Reviewing files that changed from the base of the PR and between 4493062 and 945efe2.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • .gitignore
  • .oxlintrc.json
  • package.json
  • test/spawn/smoke.mjs

Walkthrough

Adds a reusable build:bundle script while preserving the existing build behavior. Extends CI with a Windows smoke job that installs dependencies, builds the bundle, generates helper artifacts, and runs an npm spawn test under Node. The smoke test validates the resolved npm command, exit status, and semantic-version output. Generated smoke artifacts are ignored by Git and linting.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant Bun
  participant GeneratedHelpers
  participant Node
  participant npm
  GitHubActions->>Bun: run build:bundle
  GitHubActions->>Bun: bundle npm.ts and spawn.ts
  GitHubActions->>Node: run smoke.mjs
  Node->>GeneratedHelpers: resolve and spawn npm --version
  GeneratedHelpers->>npm: execute npm command
  npm-->>Node: return version and exit code
Loading

Possibly related PRs

  • qawolf/cli#1403: Addresses the Windows resolveNpmCommand and npm.cmd behavior exercised by this smoke test.

Suggested reviewers: chajac

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the change, but it omits the required template headings for Testing and Checklist and lacks concrete verification steps. Add the required Overview of Changes, Testing, and Checklist sections, include concrete verification commands, and fill out the checklist items.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title follows Conventional Commits and clearly describes the Windows CI smoke job for the spawn path.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci

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

@smonn
Simon Ingeson (smonn) marked this pull request as ready for review July 30, 2026 18:44
@smonn
Simon Ingeson (smonn) force-pushed the wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci branch from 4493062 to 789e3ed Compare July 30, 2026 18:46

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 127-131: Add a separate `bun run typecheck` step to the Windows
smoke job near the existing `bun run build:bundle` step. Keep the bundle build
unchanged and use the repository’s canonical typecheck command so `tsc --noEmit`
runs during this job.

In @.oxlintrc.json:
- Around line 109-110: Update the test/spawn ignore entry in .oxlintrc.json to
target only test/spawn/*.generated.mjs, preserving lint coverage for smoke.mjs
while continuing to ignore generated bundles.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7d1d7894-9ccc-46b7-9755-ec649c9a4539

📥 Commits

Reviewing files that changed from the base of the PR and between d7733cf and 4493062.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • .gitignore
  • .oxlintrc.json
  • package.json
  • test/spawn/smoke.mjs

Comment thread .github/workflows/ci.yml
Comment thread .oxlintrc.json
Unit tests take the platform as a parameter, so they pass on Linux
whatever win32 does. WIZ-11274 (`spawn npm ENOENT`) reached a customer
through that gap. Only a Windows runner reaches CreateProcess.

The job boots the bundle and spawns npm through the real
resolveNpmCommand and defaultSpawn. It does not run `bun run test`:
around 30 test files assert POSIX separators or file modes and fail on
win32 for reasons unrelated to the product.
@smonn
Simon Ingeson (smonn) force-pushed the wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci branch from 789e3ed to 945efe2 Compare July 30, 2026 18:53
@smonn
Simon Ingeson (smonn) merged commit 3b36c29 into main Jul 30, 2026
7 checks passed
@smonn
Simon Ingeson (smonn) deleted the wiz-11275-add-a-windows-ci-job-so-win32-spawn-regressions-fail-in-ci branch July 30, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants