Skip to main content

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

ワークフローでセルフホステッド ランナーを使用するには、ラベルまたはグループを使ってジョブのランナーを指定できます。

メモ

セルフホステッド ランナーの使用は現在無料です。 から、リポジトリ所有者は、セルフホステッドランナーでワークフローを実行するためにクラウドプラットフォームを利用する際の分単位の料金を支払うことになります。 GitHub Executive Insights の GitHub Actions の 2026 価格の変更 を参照してください。

リポジトリに使用可能なランナーの表示

リポジトリに repo: write アクセス許可を持つ場合は、リポジトリで使用できるランナーの一覧が表示されます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [ Actions] をクリックします。

    "github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーの [Management] セクションで、 [Runners] をクリックします。

  4. ランナーのリストの上部で [セルフホステッド] タブをクリックします。

  5. リポジトリに使用可能なセルフホステッド ランナーのリストを確認します。 このリストには、Actions Runner Controller で作成したランナー スケール セットとセルフホステッド ランナーの両方が含まれています。 詳しくは、「Actions Runner Controller」をご覧ください。

  6. 必要に応じて、ランナーのラベルをコピーしてワークフローで使用するには、ランナーの右側にある をクリックし、[ラベルのコピー] をクリックします。

メモ

Enterprise と organization の所有者は、このページからランナーを作成できます。 新しいランナーを作成するには、ランナーの一覧の右上にある [新しいランナー] をクリックして、リポジトリにランナーを追加します。

詳細は、「より大きなランナーを管理する」および「自己ホストランナーの追加」を参照してください。

既定ラベルを使ったジョブの転送

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

  •           `self-hosted`: セルフホステッド ランナーに適用される既定のラベル。
    
  •           `linux`、`windows`、または `macOS`: オペレーティング システムに応じて適用されます。
    
  •           `x64`、`ARM`、または `ARM64`: ハードウェア アーキテクチャに応じて適用されます。
    

ワークフローのYAMLを使って、これらのラベルの組み合わせに対してジョブを送信できます。 この例では、3 つのラベルすべてにマッチするセルフホステッド ランナーが、ジョブを実行する資格を持つことになります。

runs-on: [self-hosted, linux, ARM64]
  •           `self-hosted` – セルフホステッド ランナー上でこのジョブを実行します。
    
  •           `linux` – Linux ベースのランナーのみを使います。
    
  •           `ARM64` – ARM64 ハードウェア ベースのランナーのみを使います。
    

既定ラベルなしでセルフホステッド ランナーを個別に作成するには、作成時に --no-default-labels フラグを渡します。 Actions ランナー コントローラーは複数のラベルをサポートしていません。

カスタムラベルを使ったジョブの転送

カスタムラベルを作成し、セルフホステッド ランナーに割り当てることがいつでもできます。 カスタムラベルを使えば、付けられたラベルに基づいて特定の種類のセルフホステッド ランナーにジョブを送信できるようになります。

たとえば、特定の種類のグラフィック ハードウェアを必要とするジョブがある場合、gpu というカスタム ラベルを作成し、そのハードウェアが組み込まれているランナーに割り当てることができます。 割り当てられたすべてのラベルにマッチするセルフホステッド ランナーが、そのジョブを実行できるようになります。

以下の例は、既定とカスタムのラベルを組み合わせたジョブです。

runs-on: [self-hosted, linux, x64, gpu]
  •           `self-hosted` – セルフホステッド ランナー上でこのジョブを実行します。
    
  •           `linux` – Linux ベースのランナーのみを使います。
    
  •           `x64` – x64 ハードウェア ベースのランナーのみを使います。
    
  •           `gpu` – このカスタム ラベルは、GPU ハードウェアが組み込まれたセルフホステッド ランナーに手動で割り当てられました。
    

これらのラベルは累積的に働くので、このジョブを処理できるセルフホステッド ランナーには、4 つすべてのラベルがなくてはなりません。

グループを使用したジョブのルーティング

この例では、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@v5
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

ラベルとグループを使用したジョブのルーティング

グループとラベルを組み合わせる場合、ランナーはジョブを実行する資格を得るために両方の要件を満たす必要があります。

この例では、ubuntu-runners というランナー グループに、ラベル ubuntu-20.04-16core も割り当てられている Ubuntu ランナーが設定されています。 runs-on キーは grouplabels を組み合わせて、ラベルが一致するグループ内の使用可能な任意のランナーにジョブがルーティングされるようにします。

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v