ci: per-OS shells (pwsh on Windows, bash on unix) #48
Loading…
Reference in a new issue
No description provided.
Delete branch "ci-windows-shell"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Restructures the two windows-matrix workflows so the Windows leg uses pwsh, not the WSL
bashstub that was silently running every step in a different OS. Turnscargo-class corpora · windowsgreen to match the other three arches. 1.97.1 was pre-installed on the Windows box (host provisioning). Full rationale in the commit body.Does NOT touch the byte-equality/byte-exact jobs' test failures, which are red on every platform (linux + macOS too) for a separate, non-shell reason.
The PR's Windows CI leg is the verification.
🤖 Generated with Claude Code
The Windows runner is a host executor whose `bash` resolves to the Store WSL stub (C:\Users\…\AppData\Local\Microsoft\WindowsApps\bash.exe) — a whole different OS. wai-conformance set `defaults: run: shell: bash` globally, so on Windows every step dropped into WSL Linux, where the Windows rustup/cargo and the Windows checkout don't apply. That is why `cargo-class corpora · windows` was the lone red in a job that is green on linux, linux-arm64 and macos. Fix, matching the fleet convention (Windows → pwsh): - Drop the global bash default. - The two genuinely shell-specific steps — the rustup setup and the corpus-verify helper loop — ship once per shell family, guarded by `if: matrix.os == 'windows'`. The Windows setup is just `rustup toolchain install/default` (the box is a host executor that already has rustup); no curl bootstrap, no bash. - The bare `cargo …` steps carry no explicit shell, so each runner uses its native default (bash-family on unix, pwsh on Windows) and runs cargo identically. Unix behavior is unchanged. Also pre-installed 1.97.1 on the Windows box (host provisioning, like every other runner) so the toolchain step is a no-op fetch. Scope: this unblocks the Windows *shell*. It turns `cargo-class · windows` green to match the other arches. It does NOT address the byte-equality / byte-exact jobs, which fail on *every* platform including linux and macOS — a real cross-platform test failure (golden mismatch or compile error), independent of shell, and a separate thread. Co-Authored-By: Claude Opus 4.8 <[email protected]>