サポートされているランナーとハードウェアリソース
パブリックおよびプライベート リポジトリで、さまざまな GitHub ホステッド ランナーを使用できます。
使用できるランナーのリストについては、以下を参照してください。 * パブリック リポジトリ用の標準ランナー
GitHub ホステッド Linux ランナーは、Android SDK ツールのハードウェア アクセラレーションをサポートしています。これにより、Android テストの実行が大幅に高速化され、所要時間 (分) が短くなります。 Android のハードウェア アクセラレーションの詳細については、Android Developers ドキュメントの「Android Emulator のハードウェア アクセラレーションを設定する」を参照してください。
メモ
`-latest` ランナー イメージは、GitHub が提供する最新の安定したイメージであり、オペレーティング システム ベンダーから入手できるオペレーティング システムの最新バージョンではない可能性があります。
警告
ベータ版および非推奨のイメージは、"現状のまま"、"保証なし"、"利用可能な状態" で提供され、サービス レベル アグリーメントと保証から除外されます。 ベータ版のイメージは、カスタマー サポートでカバーされない場合があります。
パブリック リポジトリ向けの標準 GitHub がホストするランナー
パブリック リポジトリの場合、次の表に示すワークフロー ラベルを使用するジョブは、関連する仕様で実行されます。 単一CPUランナーを除き、各GitHubホストランナーは、GitHub によってホストされる新しい仮想マシン(VM)です。 Single-CPUランナーは、共有VM上のコンテナー内でホストされます。GitHub ホステッド ランナー リファレンスを参照してください。 標準 GitHub がホストするランナーは、パブリック リポジトリでは無料で無制限です。
| 仮想マシン/コンテナー | プロセッサ (CPU) | メモリ (RAM) | ストレージ (SSD) | Architecture | ワークフロー ラベル |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 GB | 14 GB | x64 |
|
プライベート リポジトリの標準の GitHub でホストされたランナー
プライベート リポジトリの場合、以下のテーブルに表示されるワークフロー ラベルを使用するジョブは、関連する仕様に沿った仮想マシンで実行されます。 これらのランナーは、GitHub アカウントの無料の分の割り当てを使用し、分単位の料金で課金されます。 「アクションズ ランナーの価格」を参照してください。
| 仮想マシン | プロセッサ (CPU) | メモリ (RAM) | ストレージ (SSD) | Architecture | ワークフロー ラベル |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 GB | 14 GB | x64 |
|
これらのステップを実行してください:
ワークフローログには、ジョブの実行に使用されたランナーが一覧表示されます。 詳しくは、「ワークフロー実行の履歴を表示する」をご覧ください。
arm64 macOS ランナーの制限事項
- GitHub によって提供されるすべてのアクションは、arm64 GitHub ホストランナーと互換性があります。 ただし、コミュニティ アクションは arm64 と互換性がない場合があり、実行時に手動でインストールする必要があります。
- Apple の Virtualization Framework の制限により、入れ子になった仮想化はサポートされていません。
- 現在、macOS の大規模ランナーでは、Azure プライベート ネットワークや静的 IP の割り当てなどのネットワーク機能は使用できません。
- Apple ではこの機能がサポートされていないため、arm64 macOS ランナーには、静的 UUID/UDID が割り当てされていません。 ただし、Intel MacOS ランナーには、静的 UDID、特に
4203018E-580F-C1B5-9525-B745CECA79EBが割り当てられます。 ビルドをテストする予定の同じホストでビルドして署名する場合は、開発プロビジョニング プロファイルを使用して署名できます。 静的 UDID が必要な場合は、Intel ランナーを使用して、その UDID を Apple Developer アカウントに追加できます。
シングルCPUランナー
単一CPUのGitHubホストランナーは、パブリックリポジトリとプライベートリポジトリの両方で利用可能です。 これらのランナーは、ワークフロー ラベル ubuntu-slimを使用して指定され、軽量な操作を実行するための低コストのオプションを提供します。 この種のランナーは、自動化タスク、発行操作、実行時間の短いジョブに最適化されています。 通常の重い CI/CD ビルドには適していません。
`ubuntu-slim` ランナーは、完全な VM インスタンスではなく、コンテナー内の Ubuntu Linux でアクション ワークフローを実行します。 ジョブが開始されると、GitHub によって、そのジョブの新しいコンテナーが自動的にプロビジョニングされます。 ジョブ内のすべてのステップはコンテナーで実行され、そのジョブのステップはランナーのファイル システムを使用して情報を共有できます。 ジョブが完了すると、コンテナーは自動的に使用停止になります。 各コンテナーは、ハイパーバイザー レベル 2 の分離を提供します。
メモ
`ubuntu-slim` ランナーのコンテナーは、特権のないモードで実行されます。 つまり、ファイル システムのマウント、Docker イン Docker の使用、低レベルのカーネル機能へのアクセスなど、昇格された特権を必要とする一部の操作はサポートされていません。
`ubuntu-slim` ランナー イメージには、軽量タスクに適した最小限のツール セットがインストールされます。
`ubuntu-slim` イメージにインストールされているソフトウェアの詳細については、[](https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md) リポジトリの `actions/runner-images`を参照してください。
使用制限
Single-CPU ランナーは、他の GitHubホスト標準ランナーと同じコンカレンシー モデルに従います。 「アクションの制限」を参照してください。 ランナーのコンカレンシーは、プランによって決まります。
単一 CPU ランナーのジョブ タイムアウトは 15 分です。 ジョブはこの制限に達すると、強制的に終了され、失敗として扱われます。
より大きなランナーs
GitHub Team プランと GitHub Enterprise Cloud プランのお客様は、標準の GitHub ホステッド ランナーよりも多くのリソースを持つさまざまなマネージド仮想マシンから選択できます。 これらのマシンは "より大きなランナー (larger runner)" と呼ばれます。 これらには、次の高度な機能が用意されています。
- 追加の RAM、CPU、ディスク領域
- 静的 IP アドレス
- Azure プライベート ネットワーク
- ランナーをグループ化する機能
- 同時実行ワークフローをサポートするための自動スケール
- GPU 搭載ランナー
これらの より大きなランナー (larger runner) は、GitHub によってホストされ、ランナー アプリケーションとその他のツールをプレインストールしています。
詳しくは、「より大きなランナーの使用」をご覧ください。
管理者特権
Linux と macOS のどちらの仮想マシンでも、パスワードレスの sudo が実行されます。 現在のユーザーより高い特権が必要なコマンドやインストール ツールを実行する必要がある場合は、パスワードを入力する必要なく、sudo を使うことができます。 詳細については、Sudo のマニュアルを参照してください。
Windowsの仮想マシンは、ユーザアカウント制御(UAC)が無効化されて管理者として動作するように設定されています。 詳細については、Windows のドキュメントの「ユーザー アカウントの制御のしくみ」を参照してください。
IP アドレス
GitHub Actions で GitHub ホステッド ランナーに使われる IP アドレス範囲のリストを取得するには、GitHub REST API を使用できます。 詳細については、actions エンドポイントの応答で GET /meta キーを参照してください。 詳しくは、「メタデータ用 REST API エンドポイント」をご覧ください。
Windows及びUbuntuのランナーはAzureでホストされており、そのためAzureのデータセンターと同じIPアドレスの範囲を持ちます。 macOSランナーはGitHub独自のmacOSクラウドでホストされます。
GitHub ホステッド ランナーには非常に多くの IP アドレス範囲があるため、内部リソースの許可リストとしてこれらを使うことはお勧めしません。 代わりに、静的 IP アドレス範囲を持つ より大きなランナー またはセルフホステッド ランナーを使用することをお勧めします。 詳細については、「より大きなランナーの使用」または「セルフホステッド ランナー」を参照してください。
この API が返す GitHub Actions の IP アドレスのリストは、週に 1 回更新されます。
GitHub ホステッド ランナーの通信要件
GitHub ホステッド ランナーは、基本的な通信操作を実行するために、GitHub が所有するエンドポイントに接続する必要があります。 加えて、アクション内で指定または利用する追加ネットワークへのアクセスも必要となる場合があります。
構成内のネットワーク間で GitHub ホステッド ランナーの通信が適切に行えるように、次の通信が許可されていることを確認してください。
メモ
一覧表示されているドメインの一部は、CNAME レコードを使用して構成されます。 ファイアウォールによっては、すべての CNAME レコードに対して規則を再帰的に追加する必要がある場合があります。 CNAME レコードは今後変更される可能性があり、一覧表示されているドメインのみが一定のままであることに注意してください。
重要な操作に必要:
github.com api.github.com *.actions.githubusercontent.com
github.com
api.github.com
*.actions.githubusercontent.com
**ダウンロード アクションに必要:**
codeload.github.com
codeload.github.com
**ジョブサマリー、ログ、ワークフロー アーティファクトのアップロード/ダウンロードに必要:**
results-receiver.actions.githubusercontent.com *.blob.core.windows.net
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net
**ランナー バージョンの更新に必要:**
objects.githubusercontent.com objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
**OIDC トークンを取得するために必要:**
*.actions.githubusercontent.com
*.actions.githubusercontent.com
**パッケージまたはコンテナーを GitHub パッケージにダウンロードまたは発行するために必要です。**
*.pkg.github.com pkg-containers.githubusercontent.com ghcr.io
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io
**Git Large File Storage に必要**
github-cloud.githubusercontent.com github-cloud.s3.amazonaws.com
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com
Dependabot updates のジョブに必要です
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
**リリース資産のダウンロードに必要:**
release-assets.githubusercontent.com
release-assets.githubusercontent.com
**VNet に必要:**
api.snapcraft.io
api.snapcraft.io
ファイル システム
GitHubは、仮想マシン上の特定のディレクトリでアクションとシェルコマンドを実行します。 仮想マシン上のファイルパスは静的なものではありません。
home、workspace、workflow ディレクトリのファイル パスを作成するには、GitHub で提供される環境変数を使います。
| ディレクトリ | 環境変数 | 説明 |
|---|---|---|
home | HOME | ユーザ関連のデータが含まれます。 たとえば、このディレクトリにはログイン試行からの認証情報を含めることができます。 |
workspace | GITHUB_WORKSPACE | アクションとシェルコマンドはこのディレクトリで実行されます。 このディレクトリの内容は、アクションによって変更することができ、後続のアクションでアクセスできます。 |
workflow/event.json | GITHUB_EVENT_PATH | ワークフローをトリガーした Webhook イベントの POST ペイロード。 GitHubは、アクションを実行してアクション間でファイルの内容を隔離するたびにこれを書き換えます。 |
ワークフローごとに GitHub によって作成される環境変数のリストについては、「変数に情報を格納する」を参照してください。
Dockerコンテナのファイルシステム
Docker コンテナーで実行されるアクションには、/github パスの下に静的なディレクトリがあります。 ただし、Dockerコンテナ内のファイルパスを構築するには、既定の環境変数を使用することを強くお勧めします。
GitHub では、/github パス プレフィックスが予約されており、アクション用に 3 つのディレクトリが作成されます。
/github/home-
`/github/workspace` – **メモ:** GitHub Actions は既定の Docker ユーザー(root) で実行しなければなりません。 Dockerfile で `USER` 命令が設定されていないことを確認します。されている場合は、`GITHUB_WORKSPACE` にアクセスできません。 /github/workflow