ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。
- GitHub Enterprise Server 3.0以降へのアップグレードに関する詳しい情報については「GitHub Enterprise Serverのアップグレード」を参照してください。
- アップグレード後のGitHub Actionsの設定に関する詳しい情報については、GitHub Enterprise Server 3.0のドキュメンテーションを参照してください。
ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
カスタム及びデフォルトラベルの作成に関する情報については「セルフホストランナーでのラベルの利用」を参照してください。
ワークフローでのセルフホストランナーの利用
ラベルを使うと、セルフホストランナーの共有される特徴に基づき、ワークフローのジョブを特定の種類のセルフホストランナーに送れます。 たとえば、ジョブが特定のハードウェアコンポーネントやソフトウェアパッケージを必要とするなら、カスタムラベルをランナーに割り当て、そのラベルを持つランナー上でのみ実行されるようジョブを設定できます。
ジョブでセルフホストランナーを指定するには、ワークフローファイル中でセルフホストランナーのラベルでruns-on
を設定してください。
All self-hosted runners have the self-hosted
label. Using only this label will select any self-hosted runner. To select runners that meet certain criteria, such as operating system or architecture, provide an array of labels that begins with self-hosted
(this must be listed first) and then includes additional labels as needed.
詳細については、「GitHub Actionsのワークフロー構文」を参照してください。
デフォルトラベルを使ったジョブの転送
セルフホストランナーは、GitHub Actionsに追加されたときに特定のラベルを自動的に受信します。 それらは、ランナーのオペレーティングシステムとハードウェアプラットフォームを示すために使われます。
self-hosted
: セルフホストランナーに適用されるデフォルトのラベル。linux
、windows
、macOS
: オペレーティングシステムに基づいて適用されます。x64
、ARM
、またはARM64
: ハードウェアアーキテクチャに基づいて適用されます。
ワークフローのYAMLを使って、これらのラベルの組み合わせに対してジョブを送信できます。 この例では、3つのラベルすべてにマッチするセルフホストランナーが、ジョブを実行する資格を持つことになります。
runs-on: [self-hosted, linux, ARM64]
self-hosted
- このジョブをセルフホストランナー上で実行します。linux
- Linuxベースのランナーだけを使います。ARM64
- ARM64ハードウェアベースのランナーだけを使います。
デフォルトラベルは固定されており、変更や削除はできません。 ジョブの転送をもっと制御する必要がある場合は、カスタムラベルの利用を検討してください。
カスタムラベルを使ったジョブの転送
カスタムラベルを作成し、セルフホストランナーに割り当てることがいつでもできます。 カスタムラベルを使えば、付けられたラベルに基づいて特定の種類のセルフホストランナーにジョブを送信できるようになります。
たとえば、特定の種類のグラフィックハードウェアを必要とするジョブがあるなら、gpu
というカスタムラベルを作成し、そのハードウェアがインストールされているランナーに割り当てることができます。 割り当てられたすべてのラベルにマッチするセルフホストランナーが、そのジョブを実行できるようになります。
以下の例は、デフォルトとカスタムのラベルを組み合わせたジョブです。
runs-on: [self-hosted, linux, x64, gpu]
self-hosted
- このジョブをセルフホストランナー上で実行します。linux
- Linuxベースのランナーだけを使います。x64
- x64ハードウェアベースのランナーだけを使います。gpu
- このカスタムラベルは、GPUハードウェアがインストールされているセルフホストランナーに手動で割り当てられました。
これらのラベルは累積的に働くので、このジョブを処理できるセルフホストランナーは、4つすべてのラベルがマッチしていなければなりません。
セルフホストランナーのルーティングの優先順位
ジョブをセルフホストランナーにルーティングする際に、GitHubはジョブのruns-on
ラベルにマッチするランナーを探します。
- GitHub first searches for a runner at the repository level, then at the organization level, then at the enterprise level.
- ジョブは最初にマッチした、オンラインでアイドル状態のランナーに送信されます。
- マッチしたすべてのランナーがビジーだった場合、ジョブはマッチしたオンラインのランナーが最も多いレベルでキューイングされます。
- マッチしたランナーがすべてオフラインだった場合、ジョブはマッチしたオフラインのランナーが最も多いレベルでキューイングされます。
- マッチするランナーがどのレベルにもなかった場合、そのジョブは失敗します。
- 24時間以上にわたってキューに残っていたジョブは失敗します。