Skip to content

ci: add Windows to the test matrix (verification phase)#1792

Draft
shulaoda wants to merge 2 commits into
cloudflare:mainfrom
shulaoda:06-06-ci_add_windows_to_the_test_matrix_verification_phase_
Draft

ci: add Windows to the test matrix (verification phase)#1792
shulaoda wants to merge 2 commits into
cloudflare:mainfrom
shulaoda:06-06-ci_add_windows_to_the_test_matrix_verification_phase_

Conversation

@shulaoda
Copy link
Copy Markdown
Contributor

@shulaoda shulaoda commented Jun 6, 2026

Warning

Not for merge as-is. This PR is a verification harness for the Windows support effort: it runs the full test matrix on Windows for every PR so we can see and fix Windows failures on follow-up PRs. Once Windows is green, the matrix will be flipped to main-only (so PRs aren't slowed) and only then will the Windows matrix be merged.

Summary

  • Add windows-latest to the os matrix of: test-unit, test-integration, test-integration-merge, create-next-app, e2e.
  • Name CI artifacts per-OS (blob-report-<os>-<shard>, coverage-html-<os>, playwright-report-<project>-<os>) so Windows and Linux runs don't collide.
  • Guard the Linux-only WebKit system-dependency steps (apt/sudo) with runner.os == 'Linux'.
  • Coverage merge stays Linux-only (it's OS-independent).

Why run on PRs for now

The goal of this PR is to make Windows failures visible so they can be fixed incrementally. Running on PRs (not just main) lets each follow-up fix PR show its Windows status directly. The CI aggregate (CI) will be red until the ~known Windows failures are resolved — that is expected during this phase.

Switching to main-only before merge

Each test job's os: is currently the static [ubuntu-latest, windows-latest]. To make Windows main-only (Linux-only on PRs) before merging, replace each with the gated form documented at the top of the jobs: block:

os: ${{ github.event_name == 'push' && fromJSON('["ubuntu-latest", "windows-latest"]') || fromJSON('["ubuntu-latest"]') }}

Not included

  • No tests or source are changed here — this is CI config only. Windows fixes land in separate PRs.
  • E2E projects (including Cloudflare/wrangler ones) are not excluded on Windows; failures there will be triaged on follow-up PRs rather than hidden.

Notes / to verify before merge

  • Confirm the required status check on main is the aggregate CI job (not individual matrix legs). Adding ${{ matrix.os }} to leg names changes their display names; if branch protection required specific leg names, those would need updating. The existing shard-parameterized leg names suggest the gate is already the CI aggregate.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Jun 6, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@vinext/cloudflare@1792
npm i https://pkg.pr.new/vinext@1792

commit: f22e2ad

@shulaoda shulaoda force-pushed the 06-06-ci_add_windows_to_the_test_matrix_verification_phase_ branch 2 times, most recently from 8c52b8c to 9fbc48d Compare June 6, 2026 14:58
@shulaoda shulaoda force-pushed the 06-06-ci_add_windows_to_the_test_matrix_verification_phase_ branch from 9fbc48d to ff1dc9b Compare June 6, 2026 14:59
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