Skip to content
OnARM.Net

CI/CD para Windows on Arm: GitHub Actions windows-11-arm e Alternativas

Atualizado em 5 de jun. de 2026

A partir de 2026, você pode compilar e testar o Windows on Arm em CI sem possuir hardware Arm. O GitHub oferece um runner Windows Arm64 hospedado e, para os casos que ele não cobre, existem alternativas limpas.

O estado do Arm CI em 2026

O runner hospedado windows-11-arm do GitHub — uma imagem Windows 11 desktop Arm64 com ferramentas pré-instaladas, 4 vCPU padrão — tornou-se disponível de forma geral para repositórios públicos em 7 de agosto de 2025, gratuito para repositórios públicos. Isso torna a compilação e teste nativos em Arm64 um destino CI de primeira classe, não um projeto secundário auto-hospedado.

A armadilha que vai te pegar

windows-11-arm funciona apenas em repositórios públicos. Em um repositório privado, o trabalho falha completamente. Para projetos privados, você precisa de runners Arm maiores/pagos ou um agente Arm auto-hospedado. Verifique isso antes de integrá-lo em um pipeline privado.

Um fluxo de trabalho mínimo funcional

name: build-arm64
on: [push, pull_request]
jobs:
  arm64:
    runs-on: windows-11-arm   # public repos only
    steps:
      - uses: actions/checkout@v4
      - uses: microsoft/setup-msbuild@v2
      - name: Build ARM64
        run: msbuild MyApp.sln /p:Platform=ARM64 /p:Configuration=Release
      - name: Test on-target
        run: ctest --output-on-failure

A vantagem aqui é que a compilação e o teste são executados em Arm64 real — seu conjunto de testes exercita caminhos de código nativos, não emulados.

Cross-compile vs nativo: escolha por etapa

  • Cross-compile no x64 (windows-latest + /p:Platform=ARM64) é mais rápido e barato, mas você não pode executar os binários Arm64 resultantes no runner x64 — sem execução de teste nativa.
  • Nativo no windows-11-arm compila e executa testes no alvo.

A matriz pragmática: cross-compile a compilação no x64 para velocidade, depois um trabalho separado windows-11-arm que compila e executa a suíte de testes. Para código de driver ou anti-cheat, o teste no alvo não é opcional — a emulação não pode exercitar componentes do kernel (por que).

Repositórios privados e outras plataformas

Para repositórios privados: runners Arm maiores do GitHub (pagos), ou um agente Arm auto-hospedado em um laptop Snapdragon X de varejo ou uma VM Windows Arm na nuvem. O Azure DevOps pode usar VMs baseadas em Arm (Ampere/Cobalt) como agentes auto-hospedados.

Fechando o ciclo

Assim que seu pipeline publicar a compilação Arm64 no winget, na Microsoft Store ou no GitHub Releases, os rastreadores de compatibilidade a detectam — o nosso reescaneia o winget e os metadados de release do GitHub e altera sua entrada para nativo automaticamente. Combine este guia com o roteiro de portabilidade (o que compilar) e observe a tendência de participação nativa para a qual você está contribuindo.

← Todos os guias