Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

ワークフローでのセルフホストランナーの利用

ワークフローでセルフホストランナーを使うには、ラベルを使ってジョブのためのランナーの種類を指定できます。

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

カスタ�  ラベルと既定のラベルの作成については、「セルフホスト ランナーとのラベルの利用」を参照してく� さい。

ワークフローでのセルフホストランナーの利用

ラベルを使うと、セルフホストランナーの共有される特徴に基づき、ワークフローのジョブを特定の種類のセルフホストランナーに送れます。 たとえば、ジョブが特定のハードウェアコンポーネントやソフトウェアパッケージを必要とするなら、カスタ� ラベルをランナーに割り当て、そのラベルを持つランナー上でのみ実行されるようジョブを設定できます。

ジョブにセルフホステッド ランナーを指定するには、ワークフロー ファイルでセルフホステッド ランナーのラベルを使って runs-on を設定します。

すべてのセルフホステッド ランナーに self-hosted ラベルが含まれます。 このラベルのみを使うと、セルフホステッド ランナーが選ばれます。 オペレーティング システ� やアーキテクチャなど、特定の条件を満たすランナーを選ぶには、self-hosted で始まり (リストの最初にこれを示す必要があります)、必要に応じて追� のラベルを含むラベルの配列を指定することをお勧めします。 ラベルの配列を指定すると、指定したラベルをすべて持つランナーのキューにジョブが入れられます。

self-hosted ラベルは必� �ではありませんが、セルフホステッド ランナーを使う� �合は、自分のジョブから現在または将来の GitHub ホスト ランナーが意図せずに指定されないことを確実にするため、それを指定することを強くお勧めします。

詳細については、GitHub Actions のワークフロー構文に関するページを参照してく� さい。

デフォルトラベルを使ったジョブの転送

セルフホストランナーは、GitHub Actionsに追� されたときに特定のラベルを自動的に受信します。 それらは、ランナーのオペレーティングシステ� とハードウェアプラットフォー� を示すために使われます。

  • self-hosted: すべてのセルフホステッド ランナーに適用される既定のラベル。
  • linuxwindows、または macOS: オペレーティング システ� に応じて適用されます。
  • x64ARM、または 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 は、まずリポジトリ レベル、次に組織レベル、次にエンタープライズ レベルでランナーを検索します。
  • GitHub が特定のレベルでジョブの runs-on ラベルと一致するオンラインでアイドルのランナーを見つけると、ジョブがそのランナーに割り当てられ、送信されます。
    • 割り当てられたジョブをランナーが 60 秒以内に取得しない� �合、ジョブはすべてのレベルでキューに� �納され、任意のレベルから一致するランナーがオンラインになり、ジョブを取得するまで待機します。
  • GitHub がどのレベルでもオンラインでアイドルのランナーを見つけられない� �合、ジョブはすべてのレベルでキューに� �納され、いずれかのレベルの一致するランナーがオンラインになり、ジョブを取得するまで待機します。
  • 24時間以上にわたってキューに残っていたジョブは失敗します。