Add windows-2025 GitHub runner support for builds and tests
This PR adds comprehensive support for GitHub's new windows-2025 runners across the MSQuic CI/CD pipeline, enabling builds and tests to run on the latest Windows environment.
Overview
GitHub recently introduced windows-2025 runner images, and this change updates our workflows to utilize these new runners while maintaining backward compatibility with existing windows-2022 runners.
Changes Made
Build Workflows:
- Updated
build.ymlto includewindows-2025in the build matrix alongsidewindows-2022for both regular and official builds - Enhanced
stress.ymlwithwindows-2025configurations for stress testing builds and execution - Added
dotnet-test.ymlsupport for .NET interop testing onwindows-2025
Workflows Preserved with windows-latest:
Following the principle of only adding windows-2025 where windows-2022 was explicitly used (and windows-2019 was previously supported), the following workflows remain unchanged with windows-latest:
cargo.yml- Rust/Cargo builds continue usingwindows-latestcheck-clog.yml- CLOG validation remains onwindows-latestcheck-dotnet.yml- .NET validation remains onwindows-latestnetperf.yml- Performance testing continues usingwindows-latestplugins.yml- Plugin builds for WinDbg extensions and QuicTrace remain onwindows-latestwan-perf.yml- WAN performance testing continues usingwindows-latest
Technical Approach
The implementation adds windows-2025 as additional matrix options rather than replacing windows-2022, ensuring:
- Zero breaking changes - existing workflows continue to work
- Gradual migration - teams can choose which runner to use
- Comprehensive coverage - both builds and tests supported
- Selective adoption - only workflows previously using explicit version tags (like
windows-2022) are updated, while workflows usingwindows-latestremain unchanged to track GitHub's default
Exceptions
Some workflows intentionally remain on windows-2022:
- Kernel builds -
windows-2025doesn't currently support kernel driver development - NuGet packaging - maintains consistent artifact naming
- Code coverage - preserves analysis consistency
Validation
All modified YAML workflow files have been validated for syntax correctness, and the changes maintain full backward compatibility while extending support to the new runner environment.
Fixes #5242.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.
Do not change occurences of "windows-latest". Only add "windows-2025" when "windows-2022" is used and windows-2019 was used before support was removed.
@copilot address all comments on the PR
@copilot address all comments on the PR
All feedback addressed in commit e0e8cb8:
- Reverted cargo.yml, check-clog.yml, check-dotnet.yml, and netperf.yml to use windows-latest
- Updated plugins.yml (lines 20 and 45) to use windows-latest
- Updated wan-perf.yml (lines 35 and 60) to use windows-latest
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 85.50%. Comparing base (4aeadf8) to head (e0e8cb8).
:warning: Report is 104 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #5325 +/- ##
==========================================
- Coverage 86.58% 85.50% -1.08%
==========================================
Files 59 59
Lines 18331 18621 +290
==========================================
+ Hits 15872 15922 +50
- Misses 2459 2699 +240
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.