GitHub ホステッド ランナーの概要
ランナーは、GitHub Actions ワークフローでジョブを実行するマシンです。 たとえば、ランナーはリポジトリをローカルにクローンし、テスト ソフトウェアをインストールしてから、コードを評価するコマンドを実行できます。
GitHub は、ジョブの実行に使用できるランナーを提供します。または、独自のランナーをホストすることもできます。 各 GitHub ホステッド ランナーは、ランナー アプリケーションとその他のツールがプレインストールされた GitHub によってホストされる新しい仮想マシン (VM) であり、Ubuntu Linux、Windows、または macOS オペレーティング システムで使用できます。 GitHubホストランナーを使用すると、マシンのメンテナンスとアップグレードが自動的に行われます。
標準の GitHub ホステッド ランナー オプションのいずれかを選択できます。あるいは、GitHub Team または GitHub Enterprise Cloud プランの場合は、より多くのコアを持つランナー、または GPU プロセッサを搭載したランナーをプロビジョニングできます。 これらのマシンは "より大きなランナー" と呼ばれます。 詳しくは、「より大きなランナー」をご覧ください。
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
の後のリンクで、ワークフローを実行したランナーにプレインストールされているツールが示されています。
詳しくは、「Viewing workflow run history」をご覧ください。
GitHubホストランナーには、オペレーティングシステムのデフォルトの組み込みツールに加え、上のリファレンスのリスト内のパッケージにが含まれています。 たとえば、Ubuntu と macOS のランナーには、他の既定のツールと共に grep
、find
、which
が含まれます。
Windows と Ubuntu のランナー イメージのビルドごとにソフトウェア部品表 (SBOM) を表示することもできます。 詳しくは、「セキュリティで保護された使用に関するリファレンス」をご覧ください。
アクションを使用して、ランナーにインストールされているソフトウェアと対話することをお勧めします。 この方法には、いくつかの利点があります。
- アクションでは通常、バージョンの選択、引数を渡す機能、パラメータなどの機能が提供されています
- これにより、ソフトウェアの更新に関係なく、ワークフローで使用されるツールのバージョンが同じままになります
要求したいツールがある場合は、actions/virtual-environments で issue を開いてください。 このリポジトリには、ランナーに関するすべての主要なソフトウェア更新に関するお知らせも含まれています。
メモ
GitHub ホステッド ランナーに追加のソフトウェアをインストールすることもできます。 「GitHub ホステッド ランナーのカスタマイズ」を参照してください。
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 に再ルーティングされます。