개요
jobs.<job_id>.runs-on
을 사용하여 작업을 실행할 머신 형식을 정의합니다.
- 대상 컴퓨터는 GitHub호스팅 실행기, 더 큰 실행기 또는 자체 호스팅 실행기일 수 있습니다. - 할당된 레이블 또는 해당 그룹 멤버 자격 또는 이들 조합을 기반으로 실행기를 대상으로 지정할 수 있습니다.
- 단일 문자열 또는 문자열 배열로 제공할
runs-on
수 있습니다. - 문자열 배열을 지정하면 지정된
runs-on
모든 값과 일치하는 실행기에서 워크플로가 실행됩니다. - 여러 머신에서 워크플로를 실행하려면
jobs.<job_id>.strategy
를 사용합니다.
GitHub 호스팅 실행기 선택
GitHub에서 호스트되는 실행기를 사용하는 경우 각 작업은 runs-on
으로 지정된 실행기 이미지의 새 인스턴스에서 실행됩니다.
사용 가능한 GitHub 호스팅 실행기 유형은 다음과 같습니다.
실행기 이미지 | YAML 워크플로 레이블 | 참고 사항 |
---|---|---|
Windows Server 2022 |
windows-latest 또는 windows-2022
|
windows-latest 레이블은 현재 Windows Server 2022 실행기 이미지를 사용합니다.
|
Windows Server 2019 |
windows-2019
|
없음 |
Ubuntu 22.04 |
ubuntu-latest 또는 ubuntu-22.04
|
레이블은 ubuntu-latest 현재 Ubuntu 22.04 실행기 이미지를 사용합니다.
|
Ubuntu 20.04 |
ubuntu-20.04
|
없음 |
Ubuntu 18.04 [사용되지 않음] |
ubuntu-18.04
|
ubuntu-20.04 또는 ubuntu-22.04 로 마이그레이션합니다. 자세한 내용은 이 GitHub 블로그 게시물을 참조하세요.
|
macOS Monterey 12 |
macos-latest , macos-12 , macos-latest-xl 또는 macos-12-xl
|
및 macos-latest-xl 워크플로 레이블은 macos-latest 현재 macOS 12 실행기 이미지를 사용합니다.
|
macOS Big Sur 11 |
macos-11
|
없음 |
macOS Catalina 10.15[사용되지 않음] |
macos-10.15
|
macOS-11 또는 macOS-12 로 마이그레이션합니다. 자세한 내용은 이 GitHub 블로그 게시물을 참조하세요.
|
참고: -latest
실행기 이미지는 GitHub에서 제공하는 안정적인 최신 이미지이며 운영 체제 공급업체에서 사용할 수 있는 운영 체제의 최신 버전이 아닐 수도 있습니다.
경고: 베타 및 사용되지 않는 이미지는 "있는 그대로", "모든 오류 포함" 및 "사용 가능한" 것으로 제공되며 서비스 수준 계약 및 보증에서 제외됩니다. 베타 이미지는 고객 지원에서 다루지 않을 수 있습니다.
예제: 운영 체제 지정
runs-on: ubuntu-latest
자세한 내용은 "GitHub 호스팅 실행기 정보"을 참조하세요.
자체 호스팅 실행기 선택
작업에 대한 자체 호스팅 실행기를 지정하려면 자체 호스팅 실행기 레이블을 사용하여 워크플로 파일에서 runs-on
을 구성합니다.
모든 자체 호스팅 실행기에는 self-hosted
레이블이 있습니다. 이 레이블만 사용하면 자체 호스팅 실행기가 선택됩니다. 운영 체제 또는 아키텍처와 같은 특정 조건을 충족하는 실행기를 선택하려면 self-hosted
(먼저 나열되어야 함)로 시작하고 필요에 따라 추가 레이블을 포함하는 레이블 배열을 제공하는 것이 좋습니다. 레이블 배열을 지정하면 지정한 모든 레이블이 있는 실행기에서 작업이 큐에 대기됩니다.
self-hosted
레이블이 필요하지는 않지만 자체 호스팅 실행기를 사용할 때 이 레이블을 지정하여 작업이 의도치 않게 현재 또는 미래의 GitHub 호스팅 실행기를 지정하지 않도록 하는 것이 좋습니다.
예제: 실행기 선택에 레이블 사용
runs-on: [self-hosted, linux]
자세한 내용은 "자체 호스팅 실행기 정보" 및 "AUTOTITLE"을 참조하세요.
그룹에서 실행기 선택
를 사용하여 runs-on
실행기 그룹을 대상으로 지정할 수 있으므로 해당 그룹의 구성원인 모든 실행기에서 작업이 실행됩니다. 보다 세분화된 컨트롤을 위해 실행기 그룹을 레이블과 결합할 수도 있습니다.
실행기 그룹에 는 더 큰 실행기s 또는 자체 호스팅 실행기 만 구성원으로 사용할 수 있습니다.
예: 그룹을 사용하여 작업 실행 위치 제어
이 예제에서는 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@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
예: 그룹 및 레이블 결합
그룹과 레이블을 결합할 때 실행기는 작업을 실행할 수 있도록 두 요구 사항을 모두 충족해야 합니다.
이 예제에서 라는 ubuntu-runners
실행기 그룹은 레이블 ubuntu-20.04-16core
도 할당된 Ubuntu 실행기로 채워집니다. 키는 runs-on
및 labels
를 group
결합하여 일치하는 레이블이 있는 그룹 내에서 사용 가능한 실행기로 작업이 라우팅되도록 합니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-20.04-16core
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v