GitHub ホストされたランナーの概要
ランナーは、 GitHub Actions ワークフローでジョブを実行するマシンです。 たとえば、ランナーはリポジトリをローカルにクローンし、テスト ソフトウェアをインストールしてから、コードを評価するコマンドを実行できます。
GitHub には、ジョブの実行に使用できるランナーが用意されています。また、独自のランナー [ホストすることもできます](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)。 単一CPUランナーを除き、各GitHubホストランナーは、GitHub によってホストされる新しい仮想マシン(VM)です。 Single-CPUランナーは、共有VM上のコンテナー内でホストされます。[AUTOTITLE](/actions/reference/runners/github-hosted-runners#single-cpu-runners)を参照してください。
各ランナーには、ランナー アプリケーションとその他のツールがプレインストールされています。 GitHubホストされたランナーは、Ubuntu Linux、Windows、または macOS オペレーティング システムで使用できます。 GitHubホストランナーを使用すると、マシンのメンテナンスとアップグレードが自動的に行われます。
標準の GitHubホストランナー オプションのいずれかを選択するか、 GitHub Team または GitHub Enterprise Cloud プランの場合は、より多くのコアを持つランナー、または GPU プロセッサを搭載したランナーをプロビジョニングできます。 これらのマシンは"より大きなランナー" と呼ばれます。詳細については、「 より大きなランナー」を参照してください。
より大きなランナー では、独自の構成済み VM イメージを作成および管理できるカスタム イメージもサポートされています。 詳細については、「 [カスタム イメージ](#custom-images)」を参照してください。
GitHubホストランナーを使用するには、1 秒あたり少なくとも 70 キロビットのアップロードとダウンロード速度でネットワーク アクセスが必要です。
メモ
GitHub でホストされるランナーの資格分は、マネージド ユーザー アカウント では利用できません。 メンバーではない組織のリポジトリに貢献する Enterprise Managed Users は、組織リポジトリをフォークし、組織リポジトリを対象としたプル リクエストを開くことができます。 これにより、組織の GitHub ホストランナーでワークフローが実行されます。 詳細については、 [AUTOTITLE を](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)参照してください。
ランナー イメージ
GitHub は、標準のホストランナー用に独自の VM イメージのセットを保持します。 これには、macOS、x64 Linux、Windows イメージ用のイメージが含まれます。 イメージとそれに含まれるツールのリストは、[`actions/runner-images`](https://github.com/actions/runner-images) リポジトリで管理されています。 arm64 イメージはパートナー イメージであり、[`actions/partner-runner-images`](https://github.com/actions/partner-runner-images) リポジトリで管理されています。
GitHub 所有イメージのプレインストールソフトウェア
GitHub 所有イメージに含まれるソフトウェア ツールは、毎週更新されます。 更新プロセスには数日かかり、main ブランチのプレインストール済みソフトウェアのリストは、デプロイ全体が終了した後で更新されます。
ワークフローログには、正確なランナーにプレインストールされているツールへのリンクが含まれています。 ワークフローのログでこの情報を見つけるには、Set up job セクションを展開します。 そのセクションの下で、Runner Image セクションを展開します。
Included Software の後のリンクで、ワークフローを実行したランナーにプレインストールされているツールが示されています。
詳しくは、「ワークフロー実行の履歴を表示する」をご覧ください。
GitHubホストランナーには、上記のリファレンスに記載されているパッケージに加えて、オペレーティング システムの既定の組み込みツールが含まれます。 たとえば、Ubuntu と macOS のランナーには、他の既定のツールと共に `grep`、`find`、`which` が含まれます。
Windows と Ubuntu のランナー イメージのビルドごとにソフトウェア部品表 (SBOM) を表示することもできます。 詳しくは、「セキュリティで保護された使用に関するリファレンス」をご覧ください。
アクションを使用して、ランナーにインストールされているソフトウェアと対話することをお勧めします。 この方法には、いくつかの利点があります。
- アクションでは通常、バージョンの選択、引数を渡す機能、パラメータなどの機能が提供されています
- これにより、ソフトウェアの更新に関係なく、ワークフローで使用されるツールのバージョンが同じままになります
要求したいツールがある場合は、actions/runner-images で issue を開いてください。 このリポジトリには、ランナーに関するすべての主要なソフトウェア更新に関するお知らせも含まれています。
メモ
* GitHubホストランナーに追加のソフトウェアをインストールすることもできます。 「GitHubホストランナーのカスタマイズ」を参照してください。
- ランナーを使用している間、入れ子になった仮想化は技術的には可能ですが、正式にはサポートされていません。 入れ子になった VM の使用は試験的であり、お客様自身の責任で行われます。安定性、パフォーマンス、互換性に関する保証はありません。
カスタム イメージ
カスタム イメージを使用すると、 GitHub提供される基本イメージから開始し、ワークフローのニーズに合わせてカスタマイズされた独自の VM イメージを構築できます。 カスタム イメージを使用すると、次のことができます。
- 既存のワークフロー YAML 構文を使用してカスタム VM イメージを構築します。
- ワークフローを開始する前に、承認済みのツール、セキュリティ パッチ、依存関係を使用して環境を事前に構成します。
- すべてのビルドで一貫性のある検証済みの基本環境を作成します。
カスタム イメージには、リポジトリ コード、コンテナー イメージ、バイナリ、証明書、その他の依存関係を含め、ワークフロー全体で一貫したビルド環境を作成できます。 これにより、サプライ チェーンを制御できます。 これらは、イメージの表面攻撃ベクトルを減らすことで、セットアップ時間の短縮、ビルドパフォーマンスの向上、セキュリティの強化に役立ちます。 管理者は、ポリシーを適用して、組織のセキュリティとコンプライアンスの要件を満たすために、イメージのバージョン、保持期間、年齢を管理することもできます。
カスタム イメージは、 より大きなランナー (larger runner)でのみ使用できます。 カスタム イメージを使用するジョブは、それらのランナーと同じ分単位の料金で課金されます。 カスタム イメージのストレージは、GitHub Actions ストレージを通じて従量制で課金されます。 詳しくは、「GitHub Actions の課金」をご覧ください。
カスタム イメージの使用を開始するには、 カスタム イメージの使用 を参照してください。
GitHub-ホストランナーが使用するクラウドホスト
GitHub は、 GitHub Actions ランナー アプリケーションがインストールされた状態で、Microsoft Azure の仮想マシン上の Linux および Windows ランナーをホストします。
GitHubホストランナー アプリケーションは、Azure Pipelines エージェントのフォークです。 インバウンドのICMPパケットはすべてのAzure仮想マシンでブロックされるので、pingやtracerouteコマンドは動作しないでしょう。
GitHub は、Azure データ センターで macOS ランナーをホストします。
ワークフローの継続性
GitHub Actionsサービスが一時的に利用できなくなっている場合、ワークフローの実行はトリガーされてから30分以内にキューイングされていなければ、破棄されます。 たとえば、ワークフローがトリガーされ、そしてGitHub Actionsサービスが31分以上利用できなければ、そのワークフローの実行は処理されません。
さらに、ワークフロー実行が正常にキューに登録されていても、45 分以内に GitHubホストランナーによって処理されていない場合、キューに登録されたワークフロー実行は破棄されます。
`etc/hosts` ファイル
GitHub ホストランナーは、さまざまな暗号化マイニング プールや悪意のあるサイトへのネットワーク アクセスをブロックする etc/hosts ファイルでプロビジョニングされます。 MiningMadness.com や cpu-pool.com などのホストは、重大なセキュリティ リスクが存在しないように localhost に再ルーティングされます。