Skip to content
OnARM.Net

Windows on Arm을 위한 CI/CD: GitHub Actions windows-11-arm 및 대안

2026년 6월 5일 업데이트

2026년 기준으로, Arm 하드웨어를 소유하지 않고도 CI에서 Windows on Arm을 빌드하고 테스트할 수 있습니다. GitHub는 호스팅된 Arm64 Windows 러너를 제공하며, 이 러너가 적용되지 않는 경우를 위한 깔끔한 대체 방안도 있습니다.

2026년 Arm CI 현황

GitHub의 windows-11-arm 호스팅 러너 — 사전 설치된 도구가 포함된 Windows 11 데스크톱 Arm64 이미지, 4 vCPU 표준 — 는 2025년 8월 7일에 공개 저장소에서 일반적으로 사용 가능해졌으며, 공개 저장소에서는 무료입니다. 이는 네이티브 Arm64 빌드 및 테스트를 자체 호스팅 부가 프로젝트가 아닌 일급 CI 대상으로 만듭니다.

당신을 괴롭힐 함정

windows-11-arm공개 저장소에서만 작동합니다. 비공개 저장소에서는 작업이 바로 실패합니다. 비공개 프로젝트의 경우 더 크거나 유료인 Arm 러너 또는 자체 호스팅 Arm 에이전트가 필요합니다. 비공개 파이프라인에 연결하기 전에 이를 확인하세요.

최소 동작 워크플로

name: build-arm64
on: [push, pull_request]
jobs:
  arm64:
    runs-on: windows-11-arm   # 공개 저장소만 가능
    steps:
      - uses: actions/checkout@v4
      - uses: microsoft/setup-msbuild@v2
      - name: ARM64 빌드
        run: msbuild MyApp.sln /p:Platform=ARM64 /p:Configuration=Release
      - name: 대상에서 테스트
        run: ctest --output-on-failure

여기서 얻는 이점은 빌드 그리고 테스트가 실제 Arm64에서 실행된다는 것입니다. 즉, 테스트 스위트가 에뮬레이션된 경로가 아닌 네이티브 코드 경로를 실행합니다.

크로스 컴파일 대 네이티브: 단계별 선택

  • x64에서 크로스 컴파일 (windows-latest + /p:Platform=ARM64)은 더 빠르고 저렴하지만, 결과 Arm64 바이너리를 x64 러너에서 실행할 수 없습니다 — 네이티브 테스트 실행이 불가능합니다.
  • windows-11-arm에서 네이티브는 대상에서 빌드 그리고 테스트를 실행합니다.

실용적인 매트릭스: 속도를 위해 x64에서 크로스 컴파일로 빌드한 다음, 별도의 windows-11-arm 작업이 빌드하고 테스트 스위트를 실행합니다. 드라이버나 안티 치트 코드의 경우, 대상에서의 테스트는 선택 사항이 아닙니다 — 에뮬레이션은 커널 구성 요소를 실행할 수 없습니다(이유).

비공개 저장소 및 기타 플랫폼

비공개 저장소의 경우: GitHub의 더 큰 Arm 러너(유료) 또는 소매용 Snapdragon X 노트북이나 클라우드 Arm Windows VM의 자체 호스팅 Arm 에이전트를 사용하세요. Azure DevOps는 Arm 기반 VM(Ampere/Cobalt)을 자체 호스팅 에이전트로 사용할 수 있습니다.

마무리

파이프라인이 winget, Microsoft Store 또는 GitHub Releases에 Arm64 빌드를 게시하면, 호환성 추적기가 이를 감지합니다. 저희 추적기는 winget 및 GitHub 릴리스 메타데이터를 다시 스캔하여 항목을 자동으로 네이티브로 전환합니다. 이 가이드를 이식 로드맵(빌드할 내용)과 함께 사용하고, 여러분이 기여하고 있는 네이티브 점유율 추세를 확인하세요.

← 전체 가이드