From b6a95ceac6a2c3c77f94d2f67836be6b842117a3 Mon Sep 17 00:00:00 2001 From: Mikola Lysenko Date: Sat, 10 Oct 2026 05:28:36 -0400 Subject: [PATCH] Compile tests on Windows in the merge queue Lean scope skips every Windows leg on pull requests and in the merge queue, so a cfg(unix) slip in a test reaches main and is caught only by the nightly. #1324 did exactly that: a new test separated covgap_commands_vendor's symlink test from its #[cfg(unix)] gate, and only the full-scope e2e-build-windows run caught the compile error. e2e-build-windows now also runs on merge_group. That is one GitHub-hosted Windows job per queue group that compiles every test target. Its consumers (e2e-windows, cargo-vex-matrix-windows) stay full-scope only, so no Windows tests run in the queue. The reused push on main still skips it as before. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eeda16f6d..20caf9438 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,8 @@ concurrency: # the repository variable CI_SCOPE is `full`, pull_request, merge_group and # push runs use one targeted e2e row per package manager (the rest are in # e2e-extended), one row each of the yarn and cargo VEX matrices, and skip -# the Windows/macOS legs, test, test-release, old cargo toolchains and the +# the Windows/macOS legs (except e2e-build-windows, which still compiles every +# test target on Windows in the merge queue), test, test-release, old cargo toolchains and the # sbt Docker coverage slice. Everything runs in the nightly schedule and on # workflow_dispatch. Set CI_SCOPE=full to restore the old gate without a # commit. ci-ok treats skipped jobs as passing. hosted-e2e is not scoped: @@ -1014,7 +1015,10 @@ jobs: retention-days: 3 e2e-build-windows: - if: (github.event.pull_request.draft != true) && (vars.CI_SCOPE == 'full' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') + # Lean scope still compiles every test target on Windows in the merge + # queue (one job): lean pull_request runs skip Windows, and a cfg(unix) + # slip only shows up here (#1324). Its consumers stay full-scope only. + if: (github.event.pull_request.draft != true) && (vars.CI_SCOPE == 'full' || github.event_name == 'merge_group' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') needs: clippy outputs: reuse: ${{ needs.clippy.outputs.reuse }}