Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

ジョブのランナーを選択する

ワークフローでジョブを処理するコンピューターの種類を定義します。

概要

jobs.<job_id>.runs-on を使って、ジョブを実行するマシンの種類を定義します。

  • 宛先マシンには 、GitHubホステッド ランナーより大きなランナー、またはセルフホステッド ランナーのいずれかを指定できます。 - ランナーに割り当てられたラベル、またはそのグループ メンバーシップ、またはこれらの組み合わせに基づいてランナーをターゲットにすることができます。
  • 1 つの文字列として、または文字列の配列として runs-on を指定できます。
  • 文字列の配列を指定すると、指定したすべての runs-on 値に一致するすべてのランナーでワークフローが実行されます。
  • 複数のマシンでワークフローを実行する場合は、jobs.<job_id>.strategy を使います。

GitHub ホステッド ランナーの選択

GitHub ホステッド ランナーを使うと、各ジョブは runs-on で指定したランナー イメージの新しいインスタンスで実行されます。

利用可能なGitHubホストランナーの種類は以下のとおりです。

ランナー イメージ YAML ワークフロー ラベル メモ
Windows Server 2022 windows-latest または windows-2022 windows-latest ラベルは現在、Windows Server 2022 ランナー イメージを使用しています。
Windows Server 2019 windows-2019 なし
Ubuntu 22.04 ubuntu-latest または ubuntu-22.04 ubuntu-latest ラベルは現在、Ubuntu 22.04 ランナー イメージを使用しています。
Ubuntu 20.04 ubuntu-20.04 なし
Ubuntu 18.04 [非推奨] ubuntu-18.04 ubuntu-20.04 または ubuntu-22.04 に移行。 詳しくは、こちらの GitHub のブログ記事をご覧ください。
macOS 13 Ventura [Beta] macos-13 または macos-13-xl なし
macOS 12 Monterey macos-latestmacos-12macos-latest-xl または macos-12-xl 現在、macos-latestmacos-latest-xl のワークフロー ラベルでは、macOS 12 ランナー イメージが使われています。 1 分あたりの macOS XL ランナー (12 コア) の料金については、「GitHub Actions の課金について」をご覧ください。
macOS 11 Big Sur macos-11 なし

注: -latest ランナー イメージは、GitHub が提供する最新の安定したイメージであり、オペレーティング システム ベンダーから入手できるオペレーティング システムの最新バージョンではない可能性があります。

警告: ベータ版および非推奨のイメージは、"現状のまま"、"保証なし"、"利用可能な状態" で提供され、サービス レベル アグリーメントと保証から除外されます。 ベータ版のイメージは、カスタマー サポートでカバーされない場合があります。

例: オペレーティング システムの指定

runs-on: ubuntu-latest

詳しくは、「GitHub ホステッド ランナーの概要」を参照してください。

セルフホステッド ランナーの選択

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

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

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

例: ランナー選択のためのラベルの使用

runs-on: [self-hosted, linux]

詳細については、「セルフホステッド ランナーの概要」および「ワークフローでのセルフホストランナーの利用」を参照してください。

グループ内のランナーを選ぶ

runs-on を使用してランナー グループをターゲットにして、そのグループのメンバーである任意のランナーでジョブが実行されるようにすることができます。 よりきめ細かく制御するには、ランナー グループとラベルを組み合わせることもできます。

ランナー グループには、より大きなランナー またはセルフホステッド ランナーのみをメンバーとして含めることができます。

例: グループを使用してジョブの実行場所を制御する

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