GitHub Actions のランナーラベルとは?
ランナーラベルはランナーに付与されたタグです。ジョブは runs-on: でラベルを要求し、作業を適切なマシンへ振り分けます。
多数のランナーが利用可能な状況では、GitHub はジョブとマシンを対応付ける仕組みが必要になります。ラベルがその仕組みです。各ランナーはラベルを持ち、ジョブの runs-on: はそのジョブが要求するラベルを列挙します。
概要
ラベルはランナーに付ける文字列タグで、linux、x64、gpu やカスタム名などです。GitHub ホステッドランナーには ubuntu-latest のような組み込みラベルがあり、セルフホステッドランナーはカスタムラベルを追加できます。
Matching labels
jobs:
gpu-job:
runs-on: [self-hosted, linux, gpu]
steps:
- run: nvidia-smi仕組み
ジョブは runs-on: に列挙されたすべてのラベルを持つランナーへディスパッチされます。複数のランナーが一致した場合は利用可能ないずれかが選ばれ、どれも一致しなければジョブはキューに留まります。
カスタムラベル
セルフホステッドランナーでは、登録時に arm64 や high-memory のようなラベルを割り当てて機能を記述します。ジョブはそれらのラベルを列挙することで、そのマシンを利用するよう指定します。
重要な理由
ラベルはワークロードを誘導する手段です。重いビルドは大きなマシンへ、GPU ジョブは GPU ランナーへ振り分けます。ラベルのタイプミスは、ジョブが "no runner matched" のまま延々と残る一般的な原因でもあります。
関連する概念
ラベルはアクセス制御のためにランナーグループと連携し、セルフホステッドランナーや大型ランナーをターゲットにする方法の中心となります。
重要なポイント
- ラベルはランナーに機能や識別情報のタグを付けます。
- 照合には
runs-on:が必要なラベルをすべて列挙する必要があります。 - タイプミスがあると、一致するランナーがなくジョブがキューに残ります。
関連ガイド
What Is a GitHub Actions Runner?A runner is the machine that executes a GitHub Actions job. It can be GitHub-hosted, self-hosted, or a manage…
What Is a Self-Hosted Runner in GitHub Actions?A self-hosted runner is a machine you own and register to GitHub to run Actions jobs, giving control over har…
What Is a Runner Group in GitHub Actions?A runner group is an organization-level collection of self-hosted runners with access policies controlling wh…
What Is a Larger Runner in GitHub Actions?A larger runner is a GitHub-hosted runner with more CPU, memory, or a GPU than standard runners, used for hea…