Skip to main content

작업에 적합한 러너 선택

워크플로에서 작업을 처리할 컴퓨터 유형을 정의합니다.

개요

jobs.<job_id>.runs-on을 사용하여 작업을 실행할 머신 형식을 정의합니다.

  • 대상 머신은 either a 호스팅된 러너, , 또는 자체 호스팅 러너자체 호스팅 러너일 수 있습니다.

  • 할당된 레이블 또는 그룹 멤버 자격 또는 이러한 조합에 따라 러너를 대상으로 지정할 수 있습니다.

  • runs-on을(를) 다음으로 제공할 수 있습니다.

    • 단일 문자열
    • 문자열을 포함하는 단일 변수
    • 문자열 배열 하나, 문자열이 포함된 변수 또는 둘 다의 조합
    • key: value 또는 group 키를 사용하는 labels
  • 문자열 또는 변수 배열을 지정하면 워크플로가 지정된 모든 runs-on 값과 일치하는 실행기에서 실행됩니다. 예를 들어 여기서 작업은 linux, x64, gpu 레이블이 있는 자체 호스팅 실행기에서만 실행되며 다음을 수행합니다.

    runs-on: [self-hosted, linux, x64, gpu]
    

    자세한 내용은 자체 호스트 실행기 선택을 참조하세요.

  • 배열 안에서 문자열과 변수를 혼합할 수 있습니다. 예시:

    on:
      workflow_dispatch:
        inputs:
          chosen-os:
            required: true
            type: choice
            options:
            - Ubuntu
            - macOS
    
    jobs:
      test:
        runs-on: [self-hosted, "${{ inputs.chosen-os }}"]
        steps:
        - run: echo Hello world!
    
  • 여러 머신에서 워크플로를 실행하려면 jobs.<job_id>.strategy를 사용합니다.

참고

따옴표는 간단한 문자열(예: self-hosted)에 필요하지 않지만 , 같은 "${{ inputs.chosen-os }}"식에는 필요합니다.

GitHub 호스팅 실행기 선택

호스팅된 실행기를 GitHub사용하는 경우 각 작업은 로 지정된 runs-on실행기 이미지의 새 인스턴스에서 실행됩니다.

GitHub-hosted runner를 사용하는 경우 runs-on의 값은 워크플로 레이블 또는 러너 그룹의 이름입니다. 표준 GitHub 호스트 실행기의 레이블은 다음 표에 표시되어 있습니다.

자세한 내용은 GitHub 호스팅 실행기을(를) 참조하세요.

퍼블릭 리포지토리를 위한 GitHub 호스팅 표준 러너

공용 리포지토리의 경우 아래 표에 표시된 워크플로 레이블을 사용하는 작업은 관련 사양으로 실행됩니다. 단일 CPU 실행기를 제외하고, 각 GitHub에서 호스팅되는 실행기는 GitHub에 의해 호스트되는 새 VM(가상 머신)입니다. 단일 CPU 실행기는 공유 가상 머신의 컨테이너에서 호스팅됩니다. GitHub 호스팅 실행기 참조을 참조하세요. 퍼블릭 리포지토리에서는 GitHub가 호스팅하는 표준 러너를 무료로 무제한 사용할 수 있습니다.

가상 머신/컨테이너 프로세서 (CPU) 메모리 (RAM) 스토리지 (SSD) 아키텍처 Workflow 레이블
Linux15 GB14 GB x64 ubuntu-slim
Linux416GB14GB x64
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-24.04</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md">ubuntu-22.04</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md">ubuntu-26.04</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>Windows</td>
  <td>4</td>
  <td>16GB</td>
  <td>14GB</td>
  <td> x64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-2025</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-VS2026-Readme.md">windows-2025-vs2026</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md">windows-2022</a></code></td>
</tr>
<tr>
  <td>Linux</td>
  <td>4</td>
  <td>16GB</td>
  <td>14GB</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md">ubuntu-24.04-arm</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md">ubuntu-22.04-arm</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md">ubuntu-26.04-arm</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>Windows</td>
  <td>4</td>
  <td>16GB</td>
  <td>14GB</td>
  <td>arm64</td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md">windows-11-arm</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows11-VS2026-Arm64-Readme.md">windows-11-vs2026-arm</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>macOS</td>
  <td>4</td>
  <td>14GB</td>
  <td>14GB</td>
  <td> Intel </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md">macos-15-intel</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md">macos-26-intel</a></code></td>
</tr>
<tr>
  <td>macOS</td>
  <td>3(M1)</td>
  <td>7GB</td>
  <td>14GB</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md">macos-14</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-15</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md">macos-26</a></code></td>
</tr>

내부 및 프라이빗 리포지토리용 표준 GitHub 호스팅 러너

내부 및 프라이빗 리포지토리의 경우 아래 표에 표시된 워크플로 레이블을 사용하는 작업은 관련 사양이 있는 가상 머신에서 실행됩니다. 이러한 러너는 사용자의 GitHub 계정에 할당된 무료 사용 시간을 먼저 소진하며, 그 이후에는 분당 요금이 부과됩니다. 작업 실행기 요금을(를) 참조하세요.

가상 머신 프로세서 (CPU) 메모리 (RAM) 스토리지 (SSD) 아키텍처 Workflow 레이블
Linux15 GB14 GB x64 ubuntu-slim
Linux28GB14GB x64
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md">ubuntu-24.04</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md">ubuntu-22.04</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md">ubuntu-26.04</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>Windows</td>
  <td>2</td>
  <td>8GB</td>
  <td>14GB</td>
  <td> x64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-latest</a></code>, , <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md">windows-2025</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md">windows-2022</a></code></td>
</tr>
<tr>
  <td>Linux</td>
  <td>2</td>
  <td>8GB</td>
  <td>14GB</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md">ubuntu-24.04-arm</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md">ubuntu-22.04-arm</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md">ubuntu-26.04-arm</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>Windows</td>
  <td>2</td>
  <td>8GB</td>
  <td>14GB</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md">windows-11-arm</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-VS2026-Readme.md">windows-11-vs2026-arm</a></code> (공개 프리뷰) </td>
</tr>
<tr>
  <td>macOS</td>
  <td>4</td>
  <td>14GB</td>
  <td>14GB</td>
  <td> Intel </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md">macos-15-intel</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md">macos-26-intel</a></code></td>
</tr>
<tr>
  <td>macOS</td>
  <td>3(M1)</td>
  <td>7GB</td>
  <td>14GB</td>
  <td> arm64 </td>
  <td>
          
    <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-latest</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md">macos-14</a></code>, <code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md">macos-15</a></code><code><a href="https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md">macos-26</a></code></td>
</tr>

참고

macOS 실행기는 GHE.com의 하위 도메인에서 사용할 수 없습니다(예: octocorp.ghe.com).

표준 GitHub호스팅된 실행기 GitHub 외에도 고객에게 GitHub TeamGitHub Enterprise Cloud 고급 기능을 갖춘 다양한 관리형 가상 머신(예: 더 많은 코어 및 디스크 공간, GPU 기반 컴퓨터 및 ARM 기반 컴퓨터)을 제공하고 계획합니다. 자세한 내용은 더 큰 주자들을(를) 참조하세요.

참고

-latest 러너 이미지는 GitHub에서 제공하는 최신 안정 이미지이며, 운영 체제 공급업체가 제공하는 운영 체제의 가장 최신 버전이 아닐 수도 있습니다.

경고

베타 및 사용되지 않는 이미지는 "있는 그대로" "모든 오류를 포함하여" "사용 가능한 상태로" 제공되며, 서비스 수준 계약 및 보증에서 제외됩니다. 베타 이미지는 고객 지원에서 다루지 않을 수 있습니다.

예제: 운영 체제 지정

runs-on: ubuntu-latest

자세한 내용은 GitHub 호스팅 실행기을(를) 참조하세요.

자체 호스팅 실행기 선택

작업에 대한 자체 호스팅 실행기를 지정하려면 자체 호스팅 실행기 레이블을 사용하여 워크플로 파일에서 runs-on을 구성합니다.

자체 호스팅 실행기에는 self-hosted 레이블이 있을 수 있습니다. 자체 호스트형 실행기를 설정할 때 기본적으로 self-hosted 레이블이 포함됩니다. 자체 호스트형 레이블이 적용되지 않도록 --no-default-labels 플래그를 전달할 수 있습니다. 레이블은 운영 체제 또는 아키텍처와 같은 실행기에 대한 타겟팅 옵션을 만드는 데 사용할 수 있으며, self-hosted로 시작하는 레이블 배열(먼저 나열해야 함)을 제공한 다음 필요에 따라 추가 레이블을 포함하는 것이 좋습니다. 레이블 배열을 지정하면 지정한 모든 레이블이 있는 실행기에서 작업이 큐에 대기됩니다.

참고

Actions Runner Controller는 self-hosted 레이블을 지원하지 않습니다.

예제: 실행기 선택에 레이블 사용

runs-on: [self-hosted, linux]

자세한 내용은 자체 호스팅 실행기워크플로에서 자체 호스트형 런너 사용을(를) 참조하세요.

그룹 내에서 런너 선택

실행기 그룹을 대상으로 지정하여 해당 그룹의 멤버인 모든 실행기에서 작업이 실행되도록 runs-on을(를) 사용할 수 있습니다. 더 세분화된 제어를 위해 실행기 그룹을 레이블과 함께 조합할 수도 있습니다.

실행기 그룹에는 멤버로 더 큰 실행기s 또는 자체 호스팅 실행기만 포함할 수 있습니다.

예시: 그룹을 사용하여 작업 실행 위치 제어

이 예제에서는 러너가 build-runners라는 그룹에 추가되었습니다. runs-on 키는 build-runners 그룹에서 사용 가능한 모든 실행기로 작업을 보냅니다.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: build-runners
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

예시: 그룹 및 레이블 결합

그룹과 레이블을 결합할 때, 러너는 작업을 실행할 수 있는 자격을 얻기 위해 두 가지 요구 사항을 모두 충족해야 합니다.

이 예제에서는 runs-on 키가 grouplabels를 결합하여, 일치하는 레이블도 가진 그룹 내의 사용 가능한 러너 중 하나로 작업이 라우팅되도록 합니다.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-24.04-16core
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

예: 접두사를 사용하여 실행기 그룹을 구별하기

예를 들어 조직에서 명명된 실행기 그룹 my-group과 엔터프라이즈에 이름이 다른 실행기 그룹 my-group가 있는 경우 워크플로 파일을 업데이트하여 org/my-group 또는 ent/my-group를 사용하여 두 그룹을 구분할 수 있습니다.

org/사용:

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

ent/사용:

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]