Add windows-2025 to product build/test matrix; move tool workflows to windows-latest#6086
Draft
guhetier wants to merge 1 commit into
Draft
Add windows-2025 to product build/test matrix; move tool workflows to windows-latest#6086guhetier wants to merge 1 commit into
guhetier wants to merge 1 commit into
Conversation
… windows-latest Adds windows-2025 alongside windows-2022 in the product code matrices (build.yml WinUser, stress.yml build/stress/recvfuzz, dotnet-test.yml build/test). WinKernel is intentionally not extended because GitHub's windows-2025 image does not yet have the bits to build kernel drivers (see test.yml line 58). Switches tool-only workflows (plugins build_dbgext, wan-perf jobs) to windows-latest so they don't require periodic version bumps. Also fixes a latent bug in stress.yml where the spinquic test job hardcoded 'windows-2022' in its artifact download name, which would have prevented windows-2025 jobs from picking up the right binaries. Fixes #5242. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6086 +/- ##
==========================================
- Coverage 86.11% 85.71% -0.40%
==========================================
Files 60 60
Lines 18841 18841
==========================================
- Hits 16225 16150 -75
- Misses 2616 2691 +75 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
windows-2025alongsidewindows-2022to the product code build and test matrices, and moves tool-only workflows towindows-latestso they no longer require periodic version bumps.Supersedes #5325 (which had several bugs — see "Differences from #5325" below).
Approach
windows-2022andwindows-2025.windows-latestrunner, no matrix.Changes
Product matrices (added
windows-2025):build.yml→build-windows(WinUser/UWP). Required to keeptest.ymlhappy:test.ymlalready consumeswindows-2025artifacts.stress.yml→build-windows,stress, andrecvfuzzjobs (full 2022 mirror).dotnet-test.yml→build-windows(both TLS) anddotnet-test(quictls, mirroring the existing 2022 pattern).Tools (moved to
windows-latest):plugins.yml→build_dbgext(windows-2022→windows-latest).build_quictracewas alreadywindows-latest.wan-perf.yml→wan-perfandmerge-data(windows-2022→windows-latest).build-perfwas alreadywindows-latest.build.yml→build-nuget(windows-2022→windows-latest). Packaging step only — artifact name strings continue to referencewindows-2022because that's still in the build matrix.Intentionally NOT changed
build-windows-kernelstays onwindows-2022only — GitHub'swindows-2025image does not yet have the WDK bits to build kernel drivers (test.ymlline 58 explicitly notes this, and kernel test artifacts are hardcoded to-windows-2022-).build-windows-officialstays onwindows-2022— it's a single-target release build (-ForceOfficialRelease); OS-version compatibility is already covered bybuild-windows. Adding a matrix would double CI time for negligible gain.code-coverage.ymlunchanged — preserves coverage analysis consistency.cargo.yml,netperf.yml,netperf-kernel-bvt.yml,check-clog.yml,check-dotnet.ymlunchanged — alreadywindows-latest.test.yml,test-down-level.ymlalready hadwindows-2025in their matrices (pre-existing).Differences from #5325
windows-2025addition tobuild-windows-kernelinbuild.yml— that change would have failed becausewindows-2025doesn't yet have WDK bits for driver builds.-Sanitize→-SanitizeAddresstypo instress.yml2025 entries. The original value didn't match the artifact name produced bybuild-reuse-win.yml, so the test jobs would not have been able to download the build output.windows-2025openssl entry todotnet-test.yml's test matrix — the original PR built it but never ran the test against it.windows-2025instress.yml'srecvfuzzjob (original PR missed this —recvfuzzis a product test).stress.ymlwhere thestressjob's artifact download name hardcodedwindows-2022. Without this fix,windows-2025matrix entries would still pullwindows-2022binaries, defeating the purpose of running them. Now uses the same conditional pattern already used byrecvfuzz(usesmatrix.vec.osexcept forWinServerPrerelease, which intentionally testswindows-2022binaries on the prerelease OS).build-nugetandwan-perf.yml'smerge-datajob towindows-latest(original PR missed these tool runners).Fixes #5242.