CI/CD für Windows on Arm: GitHub Actions windows-11-arm und Alternativen
Aktualisiert 5. Juni 2026
Ab 2026 können Sie Windows on Arm in CI bauen und testen, ohne Arm-Hardware zu besitzen. GitHub liefert einen gehosteten Arm64-Windows-Runner, und für die Fälle, die dieser nicht abdeckt, gibt es saubere Alternativen.
Der Stand der Arm-CI im Jahr 2026
Der gehostete Runner windows-11-arm von GitHub – ein Windows 11 Desktop Arm64-Image mit vorinstallierten Tools, 4 vCPU Standard – wurde am 7. August 2025 für öffentliche Repositorys allgemein verfügbar und ist für öffentliche Repos kostenlos. Das macht natives Arm64-Build-und-Test zu einem erstklassigen CI-Ziel, nicht zu einem selbst gehosteten Nebenprojekt.
Der Haken, der Sie erwischen wird
windows-11-arm funktioniert nur in öffentlichen Repositorys. In einem privaten Repo schlägt der Job sofort fehl. Für private Projekte benötigen Sie größere/bezahlte Arm-Runner oder einen selbst gehosteten Arm-Agenten. Prüfen Sie dies, bevor Sie ihn in eine private Pipeline einbinden.
Ein minimaler funktionierender Workflow
name: build-arm64
on: [push, pull_request]
jobs:
arm64:
runs-on: windows-11-arm # nur öffentliche Repos
steps:
- uses: actions/checkout@v4
- uses: microsoft/setup-msbuild@v2
- name: ARM64 Build
run: msbuild MyApp.sln /p:Platform=ARM64 /p:Configuration=Release
- name: Test auf Zielplattform
run: ctest --output-on-failure
Der Vorteil hier ist, dass Build und Test auf echter Arm64-Hardware laufen – Ihre Testsuite durchläuft native Codepfade, nicht emulierte.
Cross-Compile vs. nativ: nach Phase auswählen
- Cross-Compile auf x64 (
windows-latest+/p:Platform=ARM64) ist schneller und günstiger, aber Sie können die resultierenden Arm64-Binärdateien nicht auf dem x64-Runner ausführen – keine native Testausführung möglich. - Nativ auf
windows-11-armbaut und führt Tests auf der Zielplattform aus.
Die pragmatische Matrix: Cross-Compile des Builds auf x64 für Geschwindigkeit, dann ein separater windows-11-arm-Job, der baut und die Testsuite ausführt. Für Treiber- oder Anti-Cheat-Code ist On-Target-Testing keine Option – Emulation kann keine Kernel-Komponenten ausführen (Warum).
Private Repos und andere Plattformen
Für private Repositorys: Größere Arm-Runner von GitHub (kostenpflichtig) oder ein selbst gehosteter Arm-Agent auf einem handelsüblichen Snapdragon-X-Laptop oder einer Cloud-Arm-Windows-VM. Azure DevOps kann Arm-basierte VMs (Ampere/Cobalt) als selbst gehostete Agenten verwenden.
Den Kreislauf schließen
Sobald Ihre Pipeline den Arm64-Build für winget, den Microsoft Store oder GitHub Releases veröffentlicht, erkennen Kompatibilitäts-Tracker dies – unseres scannt winget- und GitHub-Release-Metadaten erneut und ändert Ihren Eintrag automatisch auf nativ. Kombinieren Sie diesen Leitfaden mit der Portierungs-Roadmap (was zu bauen ist) und beobachten Sie den Native-Anteil-Trend, zu dem Sie beitragen.