msquic icon indicating copy to clipboard operation
msquic copied to clipboard

Add windows-2025 GitHub runner support for builds and tests

Open Copilot opened this issue 4 months ago • 4 comments

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.yml to include windows-2025 in the build matrix alongside windows-2022 for both regular and official builds
  • Enhanced stress.yml with windows-2025 configurations for stress testing builds and execution
  • Added dotnet-test.yml support for .NET interop testing on windows-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 using windows-latest
  • check-clog.yml - CLOG validation remains on windows-latest
  • check-dotnet.yml - .NET validation remains on windows-latest
  • netperf.yml - Performance testing continues using windows-latest
  • plugins.yml - Plugin builds for WinDbg extensions and QuicTrace remain on windows-latest
  • wan-perf.yml - WAN performance testing continues using windows-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 using windows-latest remain unchanged to track GitHub's default

Exceptions

Some workflows intentionally remain on windows-2022:

  • Kernel builds - windows-2025 doesn'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.

Copilot avatar Aug 05 '25 00:08 Copilot

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.

guhetier avatar Aug 05 '25 21:08 guhetier

@copilot address all comments on the PR

guhetier avatar Oct 10 '25 23:10 guhetier

@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

Copilot avatar Oct 10 '25 23:10 Copilot

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.

codecov[bot] avatar Nov 04 '25 22:11 codecov[bot]