실행기에서 작업 실행
실행기 유형이 정의되면 워크플로 파일을 업데이트하여 작업을 처리를 위해 새로 생성된 실행기 인스턴스로 보낼 수 있습니다. 실행기 그룹 또는 레이블을 사용하여 작업이 실행되는 위치를 정의할 수 있습니다.
참고: 대형 러너에 실행기 이름 기본 레이블이 자동으로 할당됩니다. 더 큰 실행기에 사용자 지정 레이블을 추가할 수는 없지만 기본 레이블 또는 실행기 그룹을 사용하여 특정 유형의 실행기로 작업을 보낼 수 있습니다.
소유자 또는 관리자 계정만 실행기 설정을 볼 수 있습니다. 관리자가 아닌 사용자는 조직 소유자에게 문의하여 사용하도록 설정된 실행기를 확인할 수 있습니다. 조직 소유자는 새 실행기 및 실행기 그룹을 만들고 실행기 그룹에 액세스할 수 있는 리포지토리를 지정하는 권한을 구성할 수 있습니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
실행기 유형이 정의되면 워크플로 파일을 업데이트하여 작업을 처리를 위해 새로 생성된 실행기 인스턴스로 보낼 수 있습니다. 실행기 그룹 또는 레이블을 사용하여 작업이 실행되는 위치를 정의할 수 있습니다.
참고: 대형 러너에 실행기 이름 기본 레이블이 자동으로 할당됩니다. 더 큰 실행기에 사용자 지정 레이블을 추가할 수는 없지만 기본 레이블 또는 실행기 그룹을 사용하여 특정 유형의 실행기로 작업을 보낼 수 있습니다.
소유자 또는 관리자 계정만 실행기 설정을 볼 수 있습니다. 관리자가 아닌 사용자는 조직 소유자에게 문의하여 사용하도록 설정된 실행기를 확인할 수 있습니다. 조직 소유자는 새 실행기 및 실행기 그룹을 만들고 실행기 그룹에 액세스할 수 있는 리포지토리를 지정하는 권한을 구성할 수 있습니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
실행기 유형이 정의되면 워크플로를 업데이트하여 작업을 처리를 위해 실행기 인스턴스로 보낼 수 있습니다. macOS 더 큰 실행기s에서 작업을 실행하려면 워크플로 YAML 파일의 키를 업데이트 runs-on
하여 macOS 실행기용 GitHub정의 레이블 중 하나를 사용합니다. 자세한 내용은 "사용 가능한 macOS 더 큰 실행기"을(를) 참조하세요.
사용 가능한 macOS 더 큰 실행기s
아래 표의 레이블을 사용하여 해당 macOS 더 큰 실행기에서 워크플로를 실행합니다.
실행기 크기 | 아키텍처 | 프로세서(CPU) | 메모리(RAM) | 스토리지(SSD) | 워크플로 레이블 |
---|---|---|---|---|---|
대형 | Intel | 12 | 30GB | 14 GB | macos-latest-large , macos-12-large , macos-13-large , macos-14-large [최신], macos-15-large [공개 미리 보기] |
XLarge | arm64(M1) | 6(+ 8 GPU 하드웨어 가속) | 14 GB | 14 GB | macos-latest-xlarge , macos-13-xlarge , macos-14-xlarge [최신], macos-15-xlarge [공개 미리 보기] |
참고: macOS 더 큰 실행기s의 -latest
경우 실행기 레이블은 macOS 12 실행기 이미지를 사용합니다. macOS Xlarge의 경우 실행기 레이블은 -latest
macOS 13 실행기 이미지를 사용합니다.
리포지토리에 사용 가능한 실행기 보기
리포지토리에 repo: write
액세스 권한이 있는 경우 리포지토리에서 사용할 수 있는 실행기 목록을 볼 수 있습니다.
-
GitHub에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 이름 아래에서 작업을 클릭합니다.
-
왼쪽 사이드바의 "관리" 섹션에서 실행기를 클릭합니다.
-
리포지토리에 사용할 수 있는 실행기 목록을 검토합니다.
-
실행기 레이블을 복사사하여 워크플로에서 사용하려면, 실행기 오른쪽에 있는 을 클릭한 다음 레이블 복사를 클릭합니다.
참고: 엔터프라이즈와 조직 소유자 및 "조직 실행기 및 실행기 그룹 관리" 권한을 가진 사용자는 이 페이지에서 새 실행기를 만들 수 있습니다. 새 실행기를 만들려면 실행기 목록의 오른쪽 상단에 있는 새 실행기를 클릭하여 리포지토리에 실행기를 추가합니다.
자세한 내용은 "대형 실행기 관리하기" 및 "자체 호스트형 실행기 추가"을(를) 참조하세요.
사용자 지정 조직 역할에 대한 자세한 정보는 "AUTOTITLE"을(를) 참조하세요.
그룹을 사용하여 작업 실행 위치 제어
이 예제에서는 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@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
그룹을 사용하여 작업 실행 위치 제어
이 예제에서는 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@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
레이블을 사용하여 작업 실행 위치 제어
runs-on: LABEL
구문을 사용하여 runs-on
키에 레이블을 암시적으로 전달할 수 있습니다. 또는 아래 예시와 같이 labels
키를 사용할 수 있습니다.
이 예제에서 runs-on
키는 ubuntu-20.04-16core
레이블이 할당된 사용 가능한 모든 실행기로 작업을 보냅니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
labels: ubuntu-20.04-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
작업 지원 리포지토리에 대한 쓰기 권한이 있는 사용자는 해당 리포지토리에서 사용할 수 있는 실행기의 레이블을 찾을 수 있습니다. "더 큰 실행기에서 작업 실행"을(를) 참조하세요.
레이블을 사용하여 작업 실행 위치 제어
runs-on: LABEL
구문을 사용하여 runs-on
키에 레이블을 암시적으로 전달할 수 있습니다. 또는 아래 예시와 같이 labels
키를 사용할 수 있습니다.
이 예제에서 runs-on
키는 windows-2022-16core
레이블이 할당된 사용 가능한 모든 실행기로 작업을 보냅니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
labels: windows-2022-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
작업 지원 리포지토리에 대한 쓰기 권한이 있는 사용자는 해당 리포지토리에서 사용할 수 있는 실행기의 레이블을 찾을 수 있습니다. "더 큰 실행기에서 작업 실행"을(를) 참조하세요.
워크플로에서 macOS 더 큰 실행기s 대상 지정
macOS 더 큰 실행기에서 워크플로를 실행하려면 키 값을 runs-on
macOS 더 큰 실행기와 연결된 레이블로 설정합니다. macOS 더 큰 실행기 레이블 목록은 "사용 가능한 macOS 더 큰 실행기s"를 참조하세요.
이 예제에서 워크플로는 macOS XL 실행기와 연결된 레이블을 사용합니다. 키는 runs-on
일치하는 레이블을 사용하여 사용 가능한 모든 실행기로 작업을 보냅니다.
name: learn-github-actions-testing
on: [push]
jobs:
build:
runs-on: macos-13-xlarge
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build
- name: Run tests
run: swift test
레이블 및 그룹을 사용하여 작업 실행 위치 제어
그룹과 레이블을 결합할 때, 실행기는 작업을 실행할 수 있도록 두 요구 사항을 모두 충족해야 합니다.
이 예제에서 ubuntu-runners
실행기 그룹은 ubuntu-20.04-16core
레이블이 할당된 Ubuntu 실행기로 채워집니다. runs-on
키가 group
, labels
와 결합되어 작업이 일치하는 레이블이 있는 그룹 내에서 사용 가능한 모든 실행기로 라우팅됩니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-20.04-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
실행기 그룹에 고유한 이름 사용
GitHub Actions에서 실행기 그룹 이름은 조직 수준에서 고유해야 합니다. 즉, 조직에서는 더 이상 엔터프라이즈의 실행기 그룹과 동일한 이름을 가진 실행기 그룹을 만들 수 없습니다. 또한 엔터프라이즈의 그룹과 동일한 이름을 공유하는 실행기 그룹에 경고 배너가 표시되며 조직 그룹의 이름을 바꿔야 합니다.
모호성을 방지하기 위해 조직 및 엔터프라이즈에 중복된 실행기 그룹이 있는 경우 워크플로가 실패합니다. 문제를 해결하려면 조직 또는 엔터프라이즈에서 실행기 그룹 중 하나의 이름을 바꾸거나 워크플로 파일을 업데이트하여 실행기 그룹 이름에 접두사를 추가할 수 있습니다.
org/
또는organization/
ent/
또는enterprise/
예: 접두사를 사용하여 실행기 그룹 구분
예를 들어 조직에서 명명된 실행기 그룹 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 ]
레이블 및 그룹을 사용하여 작업 실행 위치 제어
그룹과 레이블을 결합할 때, 실행기는 작업을 실행할 수 있도록 두 요구 사항을 모두 충족해야 합니다.
이 예제에서 ubuntu-runners
실행기 그룹은 ubuntu-20.04-16core
레이블이 할당된 Ubuntu 실행기로 채워집니다. runs-on
키가 group
, labels
와 결합되어 작업이 일치하는 레이블이 있는 그룹 내에서 사용 가능한 모든 실행기로 라우팅됩니다.
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-20.04-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
실행기 그룹에 고유한 이름 사용
GitHub Actions에서 실행기 그룹 이름은 조직 수준에서 고유해야 합니다. 즉, 조직에서는 더 이상 엔터프라이즈의 실행기 그룹과 동일한 이름을 가진 실행기 그룹을 만들 수 없습니다. 또한 엔터프라이즈의 그룹과 동일한 이름을 공유하는 실행기 그룹에 경고 배너가 표시되며 조직 그룹의 이름을 바꿔야 합니다.
모호성을 방지하기 위해 조직 및 엔터프라이즈에 중복된 실행기 그룹이 있는 경우 워크플로가 실패합니다. 문제를 해결하려면 조직 또는 엔터프라이즈에서 실행기 그룹 중 하나의 이름을 바꾸거나 워크플로 파일을 업데이트하여 실행기 그룹 이름에 접두사를 추가할 수 있습니다.
org/
또는organization/
ent/
또는enterprise/
예: 접두사를 사용하여 실행기 그룹 구분
예를 들어 조직에서 명명된 실행기 그룹 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 ]
더 큰 실행기s 문제 해결
더 큰 실행기을(를) 대상으로 하는 작업이 지연되었거나 실행되지 않는 경우, 이러한 원인이 될 수 있는 몇 가지 요인이 있습니다.
- 동시성 설정: 최대 동시성 제한에 도달했을 수 있습니다. 더 많은 작업을 병렬로 실행할 수 있도록 하려면 자동 크기 조정 설정을 더 큰 수로 변경할 수 있습니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
- 리포지토리 권한: 더 큰 실행기에 대해 적절한 리포지토리 권한을 사용하도록 설정했는지 확인합니다. 기본적으로 Enterprise 실행기는 리포지토리 수준에서 사용할 수 없으며 조직 관리자가 수동으로 사용하도록 설정해야 합니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
- 청구 정보: 더 큰 실행기을(를) 사용하려면 파일에 유효한 신용 카드가 있어야 합니다. 계정에 신용 카드를 추가한 후, 더 큰 실행기을(를) 사용하도록 설정하는 데 최대 10분이 걸릴 수 있습니다. 자세한 내용은 "결제 방법 추가 또는 편집"을(를) 참조하세요.
- 지출 한도: GitHub Actions 지출 한도를 0보다 큰 값으로 설정해야 합니다. 자세한 내용은 "GitHub Actions의 지출 한도 관리"을(를) 참조하세요.
- 공정 사용 정책: GitHub에는 실행 중인 작업 수 또는 GitHub Actions의 전체에서 실행 중인 작업 수와 같은 여러 요인에 따라 작업을 제한하는 공정 사용 정책이 있습니다.
- 시간 할당 작업 큐: 시간 할당 작업 큐는 작업 요청과 그 작업을 실행하기 위해 GitHub가 VM을 할당할 때 사이의 시간을 나타냅니다. 규정된 YAML 워크플로 레이블(예:
ubuntu-latest
)을 활용하는 표준 GitHub 호스트형 실행기는 항상 "warm" 상태입니다. 실행기가 크면 "warm" 상태인 컴퓨터의 풀이 더 작으므로 첫 번째 요청 시 작업을 선택할 준비가 되지 않을 수 있습니다. 그 결과로 GitHub가 새 VM을 만들어야 할 수 있으며, 시간을 할당하는 큐가 늘어나게 됩니다. 일단 실행기가 사용되면 VM은 후속 워크플로를 실행할 수 있도록 즉시 준비되므로 다음 24시간 동안은 향후 워크플로 실행을 위해 시간을 할당하는 큐가 줄어듭니다.
더 큰 실행기을(를) 대상으로 하는 작업이 지연되었거나 실행되지 않는 경우, 이러한 원인이 될 수 있는 몇 가지 요인이 있습니다.
- 동시성 설정: 최대 동시성 제한에 도달했을 수 있습니다. 더 많은 작업을 병렬로 실행할 수 있도록 하려면 자동 크기 조정 설정을 더 큰 수로 변경할 수 있습니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
- 리포지토리 권한: 더 큰 실행기에 대해 적절한 리포지토리 권한을 사용하도록 설정했는지 확인합니다. 기본적으로 Enterprise 실행기는 리포지토리 수준에서 사용할 수 없으며 조직 관리자가 수동으로 사용하도록 설정해야 합니다. 자세한 내용은 "대형 실행기 관리하기"을(를) 참조하세요.
- 청구 정보: 더 큰 실행기을(를) 사용하려면 파일에 유효한 신용 카드가 있어야 합니다. 계정에 신용 카드를 추가한 후, 더 큰 실행기을(를) 사용하도록 설정하는 데 최대 10분이 걸릴 수 있습니다. 자세한 내용은 "결제 방법 추가 또는 편집"을(를) 참조하세요.
- 지출 한도: GitHub Actions 지출 한도를 0보다 큰 값으로 설정해야 합니다. 자세한 내용은 "GitHub Actions의 지출 한도 관리"을(를) 참조하세요.
- 공정 사용 정책: GitHub에는 실행 중인 작업 수 또는 GitHub Actions의 전체에서 실행 중인 작업 수와 같은 여러 요인에 따라 작업을 제한하는 공정 사용 정책이 있습니다.
- 시간 할당 작업 큐: 시간 할당 작업 큐는 작업 요청과 그 작업을 실행하기 위해 GitHub가 VM을 할당할 때 사이의 시간을 나타냅니다. 규정된 YAML 워크플로 레이블(예:
ubuntu-latest
)을 활용하는 표준 GitHub 호스트형 실행기는 항상 "warm" 상태입니다. 실행기가 크면 "warm" 상태인 컴퓨터의 풀이 더 작으므로 첫 번째 요청 시 작업을 선택할 준비가 되지 않을 수 있습니다. 그 결과로 GitHub가 새 VM을 만들어야 할 수 있으며, 시간을 할당하는 큐가 늘어나게 됩니다. 일단 실행기가 사용되면 VM은 후속 워크플로를 실행할 수 있도록 즉시 준비되므로 다음 24시간 동안은 향후 워크플로 실행을 위해 시간을 할당하는 큐가 줄어듭니다.
macOS arm64는 노드 12를 지원하지 않으므로 macOS 더 큰 실행기s는 노드 16을 자동으로 사용하여 노드 12에 대해 작성된 JavaScript 작업을 실행합니다. 일부 커뮤니티 작업은 노드 16과 호환되지 않을 수 있습니다. 다른 노드 버전이 필요한 작업을 사용하는 경우 런타임에 특정 버전을 수동으로 설치해야 할 수 있습니다.
참고: ARM 기반 실행기는 현재 공개 미리 보기 버전이며 변경될 수 있습니다.