GitHub

actions/runner-images — GitHub Actions runner images

GitHub Actions·Azure Pipelines 호스팅 러너 이미지 안내

GitHub의 runner-images 저장소는 GitHub Actions와 Azure Pipelines에서 쓰는 호스팅 VM 이미지의 구성 소스를 관리합니다. 운영체제별 이미지와 라벨, 소프트웨어 업데이트·지원·폐기 정책을 정리해 CI 워크플로의 실행 환경을 선택하고 변경에 대비하도록 돕습니다.

AI 요약

GitHub의 actions/runner-images 저장소에는 GitHub-hosted runner와 Microsoft-hosted Azure Pipelines 에이전트가 사용하는 VM 이미지를 만드는 소스 코드와 이미지 운영 정책이 담겨 있습니다. 안내된 이미지는 Ubuntu, macOS, Windows 계열이며 x64와 Arm64 환경을 포함합니다. 워크플로 YAML에서 지정하는 라벨과 각 이미지에 설치된 소프트웨어 목록도 함께 제공합니다.

이미지 라벨과 운영체제 선택

ubuntu-latest, windows-latest, macos-latest 같은 -latest 라벨은 일반 공급(General Availability, GA) 상태인 최신 운영체제 이미지로 연결됩니다. 새 OS 버전으로 라벨을 옮길 때는 사전 공지와 업데이트 준비 기간을 두며, 실제 마이그레이션은 보통 1~2개월에 걸쳐 진행합니다. 이 기간에는 -latest를 사용하는 워크플로의 운영체제 버전이 바뀔 수 있습니다. 실행 환경을 고정하려면 ubuntu-22.04, windows-2022, macos-14처럼 버전을 명시하는 라벨을 사용하라고 안내합니다.

macOS 이미지는 -large, -xlarge 라벨도 제공하며, 이 접미사는 GitHub Actions 전용입니다. 베타 이미지의 이용 가능 범위는 공개 또는 비공개로 달라질 수 있습니다.

베타와 GA, 업데이트 주기

베타 이미지는 정식 출시 전에 사용자 피드백을 받아 문제를 찾고 수정하는 단계입니다. 베타 이미지로 실행한 워크플로는 Actions 고객 서비스 수준 협약(SLA)의 적용을 받지 않습니다. GA 이미지는 베타 기간을 거치고, 주요 설치 소프트웨어가 해당 OS와 호환되며, 베타에서 보고된 주요 버그를 처리한 뒤 일반 사용 대상으로 제공됩니다. GA 이미지는 SLA 적용 대상입니다.

이미지와 설치 소프트웨어는 대체로 매주 업데이트합니다. 다만 Ubuntu LTS에서는 Canonical 저장소 패키지를 주로 사용합니다. 도구와 버전은 폐기 예정이 되거나 지원 종료에 도달한 뒤 보통 6개월 후 이미지에서 제거합니다. 기본 버전 변경은 배포 2주 전에 알리는 것이 원칙이며, 위험이 큰 업데이트는 공지와 배포 사이에 최대 한 달을 둘 수 있습니다.

사전 설치 도구와 버전 관리

이미지에 넣을 도구는 사용 빈도, 최신 버전 여부, 지원 종료 여부, 라이선스, 이미지 용량과 생성 시간, 유지보수 비용을 고려해 고릅니다. 여러 버전을 함께 제공하는 도구에는 별도 기준이 있습니다. Java는 모든 LTS 버전을, Node.js는 최신 LTS 3개를, Go는 최신 마이너 버전 3개를 설치합니다. Python과 Ruby는 많이 쓰이는 주·부 버전 5개를 제공하고, .NET은 최신 LTS 2개와 최신 버전을 포함합니다. Xcode는 macOS 버전마다 주요 버전 하나를 지원하며, 새 패치 버전이 나오면 이전 패치 버전을 교체합니다.

변경 추적과 이미지 폐기

이미지 배포가 시작되면 사전 릴리스를 만들고, 배포가 끝나면 정식 릴리스로 전환합니다. 저장소 릴리스를 구독하거나 awaiting-deployment 라벨이 붙은 항목을 살펴보면 예정된 변경을 추적할 수 있습니다. 호환성을 크게 바꾸는 변경이나 이미지의 GA·폐기는 GitHub Changelog 등으로 미리 알립니다.

새 OS 이미지가 GA에 도달하면 오래된 이미지 라벨의 폐기 절차를 시작합니다. 먼저 폐기 날짜를 공지하고, 날짜가 가까워지면 예약된 브라운아웃으로 사용 중단을 단계적으로 알립니다. 지원하는 범위는 최대 GA 이미지 2개와 베타 이미지 1개입니다. 특정 빌드에서 실제 사용한 이미지와 소프트웨어 버전은 워크플로 로그의 Set up job 또는 Initialize job 단계에서 확인합니다.

원문: GitHub / 번역·요약: Trawling