ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。
- GitHub Enterprise Server 3.0以降へのアップグレードに関する詳しい情報については「GitHub Enterprise Serverのアップグレード」を参照してください。
- アップグレード後のGitHub Actionsの設定に関する詳しい情報については、GitHub Enterprise Server 3.0のドキュメンテーションを参照してください。
ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
セルフホストランナーについて
セルフホストランナーでは、ハードウェア、オペレーティングシステム、ソフトウェアツールについて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プランの無料の分を使います。無料の分を超えると、分単位のレートが適用されます。
セルフホストランナーは:
- セルフホストランナーアプリケーションのみ、自動アップデートを受信します。 You are responsible for updating the operating system and all other software.
- すでに支払いをしているクラウドサービスあるいはローカルマシンを利用できます。
- 利用するハードウェア、オペレーティングシステム、ソフトウェア、セキュリティ上の要求に合わせてカスタマイズできます。
- ジョブの実行のたびにクリーンなインスタンスを保持する必要がありません。
- GitHub Actionsと合わせて無料で利用できますが、ランナーマシンのメンテナンスコストはあなたが受け持ちます。
セルフホストランナーマシンに対する要求
以下の要求を満たしていれば、いかなるマシンもセルフホストランナーとして利用できます。
- マシン上にセルフホストランナーアプリケーションをあなたがインストールして実行できること。 詳しい情報については、「セルフホストランナーでサポートされるアーキテクチャとオペレーティングシステム」を参照してください。
- そのマシンがGitHub Actionsと通信できる。 詳しい情報については「セルフホストランナーとGitHubの通信」を参照してください。
- そのマシンが、実行しようとしている種類のワークフローに対して十分なハードウェアリソースを持っていること。 セルフホストランナーアプリケーションそのものは、最小限のリソースしか必要としません。
- Dockerコンテナアクションあるいはサービスコンテナを使うワークフローを実行したいなら、Linuxのマシンを使い、Dockerがインストールされていなければなりません。
使用制限
セルフホストランナーを使用する場合、GitHub Actions の使用にはいくつかの制限があります。 これらの制限は変更されることがあります。
- ワークフローの実行時間 - 各ワークフローの実行は72時間までに制限されます。 ワークフローの実行がこの制限に達すると、そのワークフローの実行はキャンセルされます。
- ジョブキュー時間 - セルフホストランナーの各ジョブは、最大24時間キューイングできます。 この制限内にセルフホストランナーがジョブの実行を開始しなければ、ジョブは終了させられ、完了に失敗します。
- APIリクエスト - リポジトリ内のすべてのアクションにわたって、1時間のうちに最大1000回のAPIリクエストを実行できます。 この制限を超えた場合、超過のAPIコールは失敗し、それによってジョブも失敗するかもしれません。
- ジョブマトリックス - ジョブマトリックスは、ワークフローの実行ごとに最大で256のジョブを生成できます。 この制限は、セルフホストランナーにも適用されます。
- Workflow run queue - リポジトリごとに10秒間隔で、500以上のワークフロー実行をキューに入れることはできません。 ワークフローの実行がこの制限に達すると、そのワークフローの実行は終了させられ、完了に失敗します。
セルフホストランナーのワークフローの継続性
GitHub Actionsサービスが一時的に利用できなくなっている場合、ワークフローの実行はトリガーされてから30分以内にキューイングされていなければ、破棄されます。 たとえば、ワークフローがトリガーされ、そしてGitHub Actionsサービスが31分以上利用できなければ、そのワークフローの実行は処理されません。
セルフホストランナーをサポートするアーキテクチャとオペレーティングシステム
セルフホストランナーアプリケーション用には、以下のオペレーティングシステムがサポートされています。
Linux
- Red Hat Enterprise Linux 7 or later
- CentOS 7 or later
- 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)以降
アーキテクチャ
セルフホストランナーアプリケーションでは、次のプロセッサアーキテクチャがサポートされています。
x64
- Linux、macOS、Windows。ARM64
- Linux のみ。ARM32
- Linux のみ。
セルフホストランナーとGitHubとの通信
Some extra configuration might be required to use actions from GitHub.com with GitHub Enterprise Server, or to use the actions/setup-LANGUAGE
actions with self-hosted runners that do not have internet access. 詳しい情報については「GitHub.comからのアクションへのアクセスの管理」を参照し、GitHub Enterpriseのサイト管理者に連絡してください。
セルフホストランナーとGitHub Enterprise Serverとの通信
The self-hosted runner polls GitHub Enterprise Server 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 Enterprise Server for 50 seconds, and if no response is received, it then times out and creates a new long poll. アプリケーションは、GitHub Actionsジョブを受け付けて実行するためにマシン上で動作していなければなりません。
マシンには、GitHub Enterprise Serverのインスタンスと通信するための適切なネットワークアクセスを持たせなければなりません。
セルフホストランナーは、プロキシサーバーと合わせて使うこともできます。 詳しい情報については「セルフホストランナーと合わせてプロキシサーバーを使う」を参照してください。
パブリックリポジトリでのセルフホストランナーのセキュリティ
セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー中でコードを実行するPull Requestを作成することによって、リポジトリのフォークが危険なコードをセルフホストランナーマシン上で実行できる可能性があるためです。
それぞれのGitHubホストランナーは常にクリーンな隔離された仮想マシンになり、ジョブの実行が終わると破棄されるので、GitHubホストランナーではこれは問題にはなりません。
Untrusted workflows running on your self-hosted runner pose significant security risks for your machine and network environment, especially if your machine persists its environment between jobs. リスクには以下のようなものがあります。
- マシン上での悪意あるプログラムの実行
- マシンのランナーのサンドボックスからの脱却
- マシンのネットワーク環境へのアクセスの露出
- 望まないもしくは危険なデータのマシン上への保存