Skip to content

ci: run the test suite on Windows for every pull request - #191

Merged
ShortArrow merged 1 commit into
mainfrom
ci/test-on-windows
Aug 25, 2026
Merged

ci: run the test suite on Windows for every pull request#191
ShortArrow merged 1 commit into
mainfrom
ci/test-on-windows

Conversation

@ShortArrow

Copy link
Copy Markdown
Owner

The suite ran on Linux for every PR and on all six platforms only inside release.yml's publish matrix. That makes the release the place where you find out a test is platform-specific, which is the worst place for it: v0.3.0's tag run died on windows-11-arm-win-arm64 when TlsHotReloadTests raced a file lock, and the tag had to be fixed and re-pushed. Nothing about that failure needed a release to discover.

What this adds

A test (windows) job on windows-latest, gated by the same changes filter as the Linux job, doing restore → build → test.

Deliberately thinner than the Linux job: formatting, analyzers and coverage are properties of the code rather than of the operating system, so they stay where they are instead of being paid for twice. The Linux job keeps its name, so any branch protection referencing it is untouched.

What newly gets covered

  • The Windows ACL assertion on session.json (JsonSessionStorePermissionsTests) — it asserts a protected DACL whose every entry is the current user, and it can only run on Windows. Shipped in fix(infra): protect session.json with a user-only DACL on Windows #160, verified by hand on one machine, and never executed in CI until now.
  • TlsHotReloadTests, whose Windows file-locking behaviour is what broke the v0.3.0 release.
  • Everything else, against Windows path and file semantics.

What it does not cover

windows-latest is x64. The v0.3.0 failure was on arm64, and while that particular fault looks like ordinary Windows file locking rather than anything arm-specific, an arm64-only regression would still reach the release gate unnoticed. Adding a windows-11-arm runner to every PR is a bigger bill than this problem has so far justified; macOS is left out for the same reason.

Platform-specific failures surfaced only at release time — v0.3.0's tag
run died on win-arm64 over a TLS test racing a file lock — and the
Windows ACL assertion on the session file had never run in CI at all.
@ShortArrow
ShortArrow merged commit 2fc5177 into main Aug 25, 2026
9 checks passed
@ShortArrow
ShortArrow deleted the ci/test-on-windows branch August 25, 2026 05:12
Sign up for free to 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