O Que É um Windows Runner? CI na Plataforma Windows
Um Windows runner é um runner de CI executando Windows, usado para fazer build e testar software que tem como alvo a plataforma Windows - .NET Framework, MSVC e apps nativos do Windows.
Quando seu software precisa rodar no Windows ou usar toolchains exclusivos do Windows, você precisa de um Windows runner. Ele é mais caro que Linux e tem algumas peculiaridades de plataforma, mas é inevitável para alvos genuinamente Windows.
Quando você precisa de um
Windows runners são necessários para builds que dependem da API do Windows, do compilador MSVC, do .NET Framework clássico, de containers Windows ou de testes específicos do Windows. Código multiplataforma que só tem como alvo o Linux não precisa deles.
O custo
Os minutos hospedados de Windows custam aproximadamente o dobro dos minutos de Linux. Windows runners também tendem a ser mais lentos para provisionar e têm imagens maiores, então os jobs podem parecer mais pesados que o equivalente em Linux.
Peculiaridades da plataforma
- Defaults de shell diferentes (PowerShell) e separadores de caminho.
- Operações de filesystem mais lentas para cargas com muitos arquivos pequenos.
- Imagens maiores e boot mais longo que os runners Linux.
Otimizando o CI de Windows
Como os minutos de Windows são mais caros e os jobs mais pesados, cache e right-sizing compensam. Rode apenas jobs genuinamente dependentes de Windows em Windows runners e mantenha o trabalho multiplataforma em Linux mais barato.
Containers vs Windows runners
Alguns alvos Windows precisam de containers Windows, que só rodam em Windows runners; muitas cargas de .NET, porém, agora rodam multiplataforma em Linux. Verifique se seu build realmente precisa do kernel do Windows antes de pagar por minutos de Windows.
Principais conclusões
- Um Windows runner executa Windows para builds de .NET, MSVC e nativos do Windows.
- Apenas jobs que realmente têm como alvo o Windows precisam dele.
- Os minutos de Windows custam cerca do dobro do Linux, com provisionamento mais lento.
- Mantenha o trabalho multiplataforma em runners Linux mais baratos.