Skip to content

fix(release): run the Node 20 compat suite under bash on Windows - #2345

Merged
chaliy merged 1 commit into
mainfrom
claude/release-new-version-73o48m
Aug 22, 2026
Merged

fix(release): run the Node 20 compat suite under bash on Windows#2345
chaliy merged 1 commit into
mainfrom
claude/release-new-version-73o48m

Conversation

@chaliy

@chaliychaliy commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

What changed

The Node 20 runtime-compat step in publish-js.yml now runs with shell: bash.

Why

With the Doppler token rotated and the ava/Node 20 gate in place (#2344), the dispatched Publish JS run got 21 of 22 jobs green — including every AI-example job — and stalled on one: Test JS on x86_64-pc-windows-msvc - node@20.

Run node --test __test__/runtime-compat/*.test.mjs
shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
Could not find 'D:\a\bashkit\bashkit\crates\bashkit-js\__test__\runtime-compat\*.test.mjs'

Node 20 cannot expand a glob passed to --test (that landed in Node 21), and PowerShell, the Windows runner's default shell, passes the pattern through literally. On Linux and macOS the default bash expands it, which is why only the Windows leg failed. The neighbouring example step already pins shell: bash for the same reason.

Release to NPM needs every test job, so this one skipped job is all that still holds @everruns/bashkit at 0.16.0.

Audited the other node --test glob invocations while here: ci.yml (wasm + browser example), coverage.yml, js.yml, publish-wasm.yml, and the justfile all run on Linux, so none share the problem.

Before / After

Before: Test JS on x86_64-pc-windows-msvc - node@20 fails on the literal pattern, Release to NPM is skipped, npm native stays at 0.16.0.

After: the step runs under bash, which expands the glob before Node sees it — the same 163 runtime-compat tests the Linux and macOS Node 20 legs already pass.

Risk

  • Low
  • One shell: key in one workflow step; no change to what is executed.

Checklist

  • Tests added or updated
  • Backward compatibility considered

Node 20 cannot expand a glob passed to `--test`, and PowerShell, the
Windows runner's default shell, passes the pattern through literally, so
the step failed with "Could not find ...\*.test.mjs" and kept the npm
publish job skipped. Every other `node --test` glob in the workflows runs
on Linux, where the shell expands it.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
bashkit2851ce2Commit Preview URL

Branch Preview URL
Aug 22 2026, 06:07 PM

@chaliy
chaliy merged commit 308b430 into mainAug 22, 2026
22 checks passed
@chaliy
chaliy deleted the claude/release-new-version-73o48m branch August 22, 2026 18:22
Sign up for freeto 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.

1 participant

@chaliy