참고
GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다.
개요
jobs.<job_id>.runs-on을 사용하여 작업을 실행할 머신 형식을 정의합니다.
-
대상 머신은 자체 호스팅 러너일 수 있습니다.
-
할당된 레이블 또는 그룹 멤버 자격 또는 이러한 조합에 따라 러너를 대상으로 지정할 수 있습니다.
-
runs-on을(를) 다음으로 제공할 수 있습니다.- 단일 문자열
- 문자열을 포함하는 단일 변수
- 문자열 배열 하나, 문자열이 포함된 변수 또는 둘 다의 조합
group또는labels키를 사용하는key: value쌍
-
문자열 또는 변수 배열을 지정하면 워크플로가 지정된 모든
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 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다.
자체 호스팅 실행기 선택
작업에 대한 자체 호스팅 실행기를 지정하려면 자체 호스팅 실행기 레이블을 사용하여 워크플로 파일에서 runs-on을 구성합니다.
자체 호스트형 실행기에는 self-hosted 레이블이 있을 수 있습니다. 자체 호스트형 실행기를 설정할 때 기본적으로 self-hosted 레이블이 포함됩니다. 자체 호스트형 레이블이 적용되지 않도록 --no-default-labels 플래그를 전달할 수 있습니다. 레이블은 운영 체제 또는 아키텍처와 같은 실행기에 대한 타겟팅 옵션을 만드는 데 사용할 수 있으며, self-hosted로 시작하는 레이블 배열(먼저 나열해야 함)을 제공한 다음 필요에 따라 추가 레이블을 포함하는 것이 좋습니다. 레이블 배열을 지정하면 지정한 모든 레이블이 있는 실행기에서 작업이 큐에 대기됩니다.
작업 실행기 컨트롤러는 다중 레이블을 지원하지 않으며 self-hosted 레이블을 지원하지 않는다는 점에 유의하세요.
예제: 실행기 선택에 레이블 사용
runs-on: [self-hosted, linux]
자세한 내용은 자체 호스팅 실행기 및 워크플로에서 자체 호스트형 런너 사용을(를) 참조하세요.
그룹 내에서 런너 선택
실행기 그룹을 대상으로 지정하여 해당 그룹의 멤버인 모든 실행기에서 작업이 실행되도록 runs-on을(를) 사용할 수 있습니다. 보다 세분화된 컨트롤을 위해 실행기 그룹을 레이블과 결합할 수 있습니다.
예시: 그룹을 사용하여 작업 실행 위치 제어
이 예제에서는 Ubuntu 실행기라는 ubuntu-runners 그룹에 추가되었습니다. runs-on 키는 ubuntu-runners 그룹에서 사용 가능한 모든 실행기로 작업을 보냅니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
예시: 그룹 및 레이블 결합
그룹과 레이블을 결합할 때, 러너는 작업을 실행할 수 있는 자격을 얻기 위해 두 가지 요구 사항을 모두 충족해야 합니다.
이 예제에서 ubuntu-runners 실행기 그룹은 Ubuntu 실행기들로 구성되어 있으며, 각 실행기에는 ubuntu-24.04-16core 레이블이 부여되어 있습니다.
runs-on 키가 group, labels와 결합되어 작업이 일치하는 레이블이 있는 그룹 내에서 사용 가능한 모든 실행기로 라우팅됩니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-24.04-16core
steps:
- uses: actions/checkout@v5
- 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 ]