ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

自己ホストランナーについて

独自のランナーをホストして、GitHub Actionsワークフロー中でジョブの実行に使われる環境をカスタマイズできます。

ここには以下の内容があります:

GitHub Actions の支払いを管理する GitHubは、macOSランナーのホストにMacStadiumを使用しています。

自己ホストランナーについて

セルフホストランナーでは、ハードウェア、オペレーティングシステム、ソフトウェアツールについてGitHubホストランナーよりもコントロールできます。 セルフホストランナーでは、大規模なジョブを実行するために処理能力やメモリを強化したカスタムハードウェア構成を作ったり、ローカルネットワークで利用できるソフトウェアをインストールしたり、GitHubホストランナーでは提供されていないオペレーティングシステムを選択したりできます。 セルフホストランナーは、物理、仮想、コンテナ内、オンプレミス、クラウド内のいずれでも可能です。

管理階層のさまざまなレベルでセルフホストランナーを追加できます。

  • リポジトリレベルのランナーは、単一のリポジトリ専用です。
  • Organization レベルのランナーは、Organization 内の複数のリポジトリのジョブを処理できます。
  • Enterprise レベルのランナーは、Enterprise アカウントの複数の Organization に割り当てることができます。

ランナーマシンは、GitHub Actionsのセルフホストランナーアプリケーションを使ってGitHub Enterprise Serverに接続します。 GitHub Actionsランナーアプリケーションはオープンソースです。 runnerリポジトリに貢献し、Issueを登録できます。 新しいバージョンがリリースされると、ランナーアプリケーションはランナーにジョブが割り当てられた時、あるいはジョブが割り当てられなかったなら、リリースから一週間以内に、自動的に自分をアップデートします。

セルフホストランナーは、GitHub Actionsに30日以上接続されないと、GitHub Enterprise Serverから自動的に削除されます。

セルフホストランナーのインストールと利用に関する詳しい情報については「セルフホストランナーの追加」及び「ワークフロー内でのセルフホストランナーの利用」を参照してください。

GitHubホストランナーとセルフホストランナーの違い

GitHubホストランナーは、ワークフローを素早くシンプルに実行する方法を提供しますが、セルフホストランナーはユーザのカスタム環境内でワークフローを実行する、設定の幅が広い方法です。

GitHubホストランナーは:

  • オペレーティングシステム、プリインストールされたパッケージとツール、セルフホストランナーアプリケーションの自動アップデートを受信します。
  • GitHubによって管理及びメンテナンスされます。
  • ジョブの実行のたびにクリーンなインスタンスを提供します。
  • GitHubプランの無料の分を使います。無料の分を超えると、分単位のレートが適用されます。

セルフホストランナーは:

  • セルフホストランナーアプリケーションのみ、自動アップデートを受信します。 オペレーティングシステムとその他のソフトウェアのアップデートはあなたがしなければなりません。
  • すでに支払いをしているクラウドサービスあるいはローカルマシンを利用できます。
  • 利用するハードウェア、オペレーティングシステム、ソフトウェア、セキュリティ上の要求に合わせてカスタマイズできます。
  • ジョブの実行のたびにクリーンなインスタンスを保持する必要がありません。
  • GitHub Actionsと合わせて無料で利用できますが、ランナーマシンのメンテナンスコストはあなたが受け持ちます。

セルフホストランナーマシンに対する要求

以下の要求を満たしていれば、いかなるマシンもセルフホストランナーとして利用できます。

  • マシン上にセルフホストランナーアプリケーションをあなたがインストールして実行できること。 詳しい情報については「セルフホストランナーでサポートされるオペレーティングシステム」を参照してください。
  • そのマシンがGitHub Actionsと通信できる。 詳しい情報については「セルフホストランナーとGitHubの通信」を参照してください。
  • そのマシンが、実行しようとしている種類のワークフローに対して十分なハードウェアリソースを持っていること。 セルフホストランナーアプリケーションそのものは、最小限のリソースしか必要としません。
  • Dockerコンテナアクションあるいはサービスコンテナを使うワークフローを実行したいなら、Linuxのマシンを使い、Dockerがインストールされていなければなりません。

使用制限

セルフホストランナーを使用する場合、GitHub Actions の使用にはいくつかの制限があります。 これらの制限は変更されることがあります。

  • ワークフローの実行時間 - 各ワークフローの実行は72時間までに制限されます。 ワークフローの実行がこの制限に達すると、そのワークフローの実行はキャンセルされます。
  • ジョブキュー時間 - セルフホストランナーの各ジョブは、最大24時間キューイングできます。 この制限内にセルフホストランナーがジョブの実行を開始しなければ、ジョブは終了させられ、完了に失敗します。
  • APIリクエスト - リポジトリ内のすべてのアクションにわたって、1時間のうちに最大1000回のAPIリクエストを実行できます。 この制限を超えた場合、超過のAPIコールは失敗し、それによってジョブも失敗するかもしれません。
  • ジョブマトリックス - ジョブマトリックスは、ワークフローの実行ごとに最大で256のジョブを生成できます。 この制限は、セルフホストランナーにも適用されます。

セルフホストランナーをサポートするオペレーティングシステム

セルフホストランナーアプリケーション用には、以下のオペレーティングシステムがサポートされています。

Linux

  • Red Hat Enterprise Linux 7
  • CentOS 7
  • Oracle Linux 7
  • Fedora 29以降
  • Debian 9以降
  • Ubuntu 16.04以降
  • Linux Mint 18以降
  • openSUSE 15以降
  • SUSE Enterprise Linux (SLES) 12 SP2以降

Windows

  • Windows 7 64-bit
  • Windows 8.1 64-bit
  • Windows 10 64-bit
  • Windows 10 64-bit
  • Windows Server 2016 64-bit
  • Windows Server 2019 64-bit

MacOS

  • macOS 10.13 (High Sierra)以降

セルフホストランナーとGitHubとの通信

そのマシンがGitHub Actionsと通信できる。 詳しい情報については「セルフホストランナーとGitHubの通信」を参照してください。

セルフホストランナーとGitHub Enterprise Serverとの通信

The self-hosted runner polls GitHub to retrieve application updates and to check if any jobs are queued for processing. The self-hosted runner uses a HTTPS long poll that opens a connection to GitHub for 50 seconds, and if no response is received, it then times out and creates a new long poll. アプリケーションは、GitHub Actionsジョブを受け付けて実行するためにマシン上で動作していなければなりません。

マシンには、your GitHub Enterprise Server instanceと通信するための適切なネットワークアクセスを持たせなければなりません。

セルフホストランナーは、プロキシサーバーと合わせて使うこともできます。 詳しい情報については「セルフホストランナーと合わせてプロキシサーバーを使う」を参照してください。

パブリックリポジトリでのセルフホストランナーのセキュリティ

パブリックリポジトリでは、セルフホストランナーを使わないことをおすすめします。

パブリックリポジトリのフォークでは、ワークフロー中のコードを実行するプルリクエストが作成されると、セルフホストランナー上で危険なコードが実行される可能性があります。

それぞれのGitHubホストランナーは常にクリーンな隔離された仮想マシンになり、ジョブの実行が終わると破棄されるので、GitHubホストランナーではこれは問題にはなりません。

あなたのセルフホストランナー上で実行される信頼できないワークフローは、あなたのマシンやネットワーク環境に大きなセキュリティリスクをもたらします。これは特に、マシンがジョブにまたがって環境を保持する場合に当てはまります。 リスクには以下のようなものがあります。

  • マシン上での悪意あるプログラムの実行
  • マシンのランナーのサンドボックスからの脱却
  • マシンのネットワーク環境へのアクセスの露出
  • 望まないもしくは危険なデータのマシン上への保存

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.