What Is a Windows Runner? CI on the Windows Platform
A Windows runner is a CI runner running Windows, used to build and test software that targets the Windows platform - .NET Framework, MSVC, and Windows-native apps.
When your software must run on Windows or use Windows-only toolchains, you need a Windows runner. It is more expensive than Linux and has some platform quirks, but it is unavoidable for genuine Windows targets.
When you need one
Windows runners are required for builds that depend on the Windows API, the MSVC compiler, classic .NET Framework, Windows containers, or Windows-specific testing. Cross-platform code that only targets Linux does not need them.
The cost
Hosted Windows minutes cost roughly double Linux minutes. Windows runners also tend to be slower to provision and have larger images, so jobs may feel heavier than the Linux equivalent.
Platform quirks
- Different shell defaults (PowerShell) and path separators.
- Slower filesystem operations for many-small-file workloads.
- Larger images and longer boot than Linux runners.
Optimizing Windows CI
Because Windows minutes are pricier and jobs heavier, caching and right-sizing pay off. Run only genuinely Windows-dependent jobs on Windows runners and keep cross-platform work on cheaper Linux.
Containers vs Windows runners
Some Windows targets need Windows containers, which only run on Windows runners; many .NET workloads, though, now run cross-platform on Linux. Check whether your build truly needs the Windows kernel before paying for Windows minutes.
Key takeaways
- A Windows runner runs Windows for .NET, MSVC, and Windows-native builds.
- Only jobs that truly target Windows need it.
- Windows minutes cost about double Linux, with slower provisioning.
- Keep cross-platform work on cheaper Linux runners.