GitHub ホステッド ランナーの概要
ランナーは、GitHub Actions ワークフローでジョブを実行するマシンです。 たとえば、ランナーはリポジトリをローカルにクローンし、テスト ソフトウェアをインストールしてから、コードを評価するコマンドを実行できます。
GitHub は、ジョブの実行に使用できるランナーを提供します。または、独自のランナーをホストすることもできます。 単一CPUランナーを除き、各GitHubホストランナーは、GitHub によってホストされる新しい仮想マシン(VM)です。 Single-CPUランナーは、共有VM上のコンテナー内でホストされます。GitHub ホステッド ランナー リファレンスを参照してください。
各ランナーには、ランナー アプリケーションとその他のツールがプレインストールされています。 GitHubでホストされるランナーは、Ubuntu Linux、Windows、またはmacOSオペレーティングシステムで使用できます。 GitHubホストランナーを使用すると、マシンのメンテナンスとアップグレードが自動的に行われます。
標準の GitHub ホステッド ランナー オプションのいずれかを選択できます。あるいは、GitHub Team または GitHub Enterprise Cloud プランの場合は、より多くのコアを持つランナー、または GPU プロセッサを搭載したランナーをプロビジョニングできます。 これらのマシンは "より大きなランナー" と呼ばれます。 詳しくは、「より大きなランナー」をご覧ください。
より大きなランナー ではカスタム イメージもサポートされています。カスタム イメージを使用すると、独自の構成済み VM イメージを作成および管理できます。 詳細については、「 カスタム イメージ」を参照してください。
GitHub ホステッド ランナーを使用するには、アップロードおよびダウンロード速度が 70 kbps 以上のネットワーク アクセスが必要です。
メモ
GitHub でホストされるランナーの資格分は、マネージド ユーザー アカウント では利用できません。 メンバーではない組織のリポジトリに貢献する Enterprise Managed Users は、組織リポジトリをフォークし、組織リポジトリを対象としたプル リクエストを開くことができます。 これにより、組織の GitHub ホストランナーでワークフローが実行されます。詳しくは、「Enterprise Managed Users について」をご覧ください。
ランナー イメージ
GitHub には、標準ホステッド ランナー用の独自の VM イメージのセットが保持されています。 これには、macOS、x64 Linux、Windows イメージ用のイメージが含まれます。 イメージとそれに含まれるツールのリストは、actions/runner-images リポジトリで管理されています。 arm64 イメージはパートナー イメージであり、actions/partner-runner-images リポジトリで管理されています。
GitHub 所有イメージ用のプレインストール済みソフトウェア
GitHub 所有イメージに含まれるソフトウェア ツールは、毎週更新されます。 更新プロセスには数日かかり、main ブランチのプレインストール済みソフトウェアのリストは、デプロイ全体が終了した後で更新されます。
ワークフローログには、正確なランナーにプレインストールされているツールへのリンクが含まれています。 ワークフローのログでこの情報を見つけるには、Set up job セクションを展開します。 そのセクションの下で、Runner Image セクションを展開します。
Included Software の後のリンクで、ワークフローを実行したランナーにプレインストールされているツールが示されています。
詳しくは、「ワークフロー実行の履歴を表示する」をご覧ください。
GitHubホストランナーには、オペレーティングシステムのデフォルトの組み込みツールに加え、上のリファレンスのリスト内のパッケージにが含まれています。 たとえば、Ubuntu と macOS のランナーには、他の既定のツールと共に grep、find、which が含まれます。
Windows と Ubuntu のランナー イメージのビルドごとにソフトウェア部品表 (SBOM) を表示することもできます。 詳しくは、「セキュリティで保護された使用に関するリファレンス」をご覧ください。
アクションを使用して、ランナーにインストールされているソフトウェアと対話することをお勧めします。 この方法には、いくつかの利点があります。
- アクションでは通常、バージョンの選択、引数を渡す機能、パラメータなどの機能が提供されています
- これにより、ソフトウェアの更新に関係なく、ワークフローで使用されるツールのバージョンが同じままになります
要求したいツールがある場合は、actions/virtual-environments で issue を開いてください。 このリポジトリには、ランナーに関するすべての主要なソフトウェア更新に関するお知らせも含まれています。
メモ
- GitHub ホステッド ランナーに追加のソフトウェアをインストールすることもできます。 「GitHub ホステッド ランナーのカスタマイズ」を参照してください。
- ランナーを使用している間、入れ子になった仮想化は技術的には可能ですが、正式にはサポートされていません。 入れ子になった VM の使用は試験的であり、お客様自身の責任で行われます。安定性、パフォーマンス、互換性に関する保証はありません。
カスタム イメージ
カスタム イメージを使用すると、GitHub提供の基本イメージから始めて、ワークフローのニーズに合わせてカスタマイズされた独自の VM イメージを構築できます。 カスタム イメージを使用すると、次のことができます。
- 既存のワークフロー YAML 構文を使用してカスタム VM イメージを構築します。
- ワークフローを開始する前に、承認済みのツール、セキュリティ パッチ、依存関係を使用して環境を事前に構成します。
- すべてのビルドで一貫性のある検証済みの基本環境を作成します。
カスタム イメージには、リポジトリ コード、コンテナー イメージ、バイナリ、証明書、その他の依存関係を含め、ワークフロー全体で一貫したビルド環境を作成できます。 これにより、サプライ チェーンを制御できます。 これらは、イメージの表面攻撃ベクトルを減らすことで、セットアップ時間の短縮、ビルドパフォーマンスの向上、セキュリティの強化に役立ちます。 管理者は、ポリシーを適用して、組織のセキュリティとコンプライアンスの要件を満たすために、イメージのバージョン、保持期間、年齢を管理することもできます。
カスタム イメージは、より大きなランナーでのみ使用でき、それらのランナーと同じ分単位の料金で課金されます。 カスタムイメージのストレージは、GitHub Actions ストレージを介して課金とメーター制になります。 課金の詳細については、 GitHub Actions の課金 を参照してください。
カスタム イメージの使用を開始するには、 カスタム イメージの使用 を参照してください。
GitHub ホステッド ランナーによって使用されるクラウド ホスト
GitHub は、Microsoft Azure の 仮想マシン上で GitHub Actions ランナー アプリケーションがインストールされた Linux および Windows ランナーをホストします。 GitHubホストランナーアプリケーションは、Azure Pipelines Agentのフォークです。 インバウンドの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 に再ルーティングされます。