GitHubホストランナーについて
GitHubホストランナーはGitHub Actionsランナーアプリケーションがインストールされた、GitHubがホストする仮想マシンです。 GitHubは、Linux、Windows、macOSのランナーを提供します。
GitHubホストランナーを使用すると、マシンのメンテナンスとアップグレードが自動的に行われます。 ワークフローは、仮想マシンで直接実行することも、Dockerコンテナで実行することもできます。
ワークフローのジョブごとにランナーの種類を指定できます。 ワークフローの各ジョブは、仮想マシンの新しいインスタンスで実行されます。 ジョブ実行のステップはすべて、仮想マシンの同じインスタンスで実行されるため、そのジョブのアクションはファイルシステムを使用して情報を共有できます。
GitHub Actionsランナーアプリケーションはオープンソースです。 runnerリポジトリに貢献し、Issueを登録できます。
GitHubホストランナーのクラウドホスト
GitHubは、Microsoft AzureのStandard_DS2_v2仮想マシン上でGitHub ActionsランナーアプリケーションがインストールされたLinux及びWindowsランナーをホストします。 GitHubホストランナーアプリケーションは、Azure Pipelines Agentのフォークです。 インバウンドのICMPパケットはすべてのAzure仮想マシンでブロックされるので、pingやtracerouteコマンドは動作しないでしょう。 Standard_DS2_v2マシンのリソースに関する詳しい情報については、Microsoft Azureドキュメンテーションの「Dv2 and DSv2シリーズ」を参照してください。
GitHubは、GitHub自身macOS Cloud内でmacOSランナーをホストします。
GitHubホストランナーの管理権限
LinuxおよびmacOSの仮想環境は、パスワード不要のsudo
により動作します。 現在のユーザが持っているよりも高い権限が求められるコマンドやインストールツールを実行する必要がある場合は、パスワードを入力する必要なく、sudo
を使うことができます。 詳しい情報については、「Sudo Manual」を参照してください。
Windowsの仮想マシンは、ユーザアカウント制御(UAC)が無効化されて管理者として動作するように設定されています。 詳しい情報については、Windowsのドキュメンテーションの「ユーザー アカウント制御のしくみ」を参照してください。
サポートされているランナーとハードウェアリソース
Hardware specification for Windows and Linux virtual machines:
- 2コアCPU
- 7 GBのRAMメモリー
- 14 GBのSSDディスク容量
Hardware specification for macOS virtual machines:
- 3コアCPU
- 14 GBのRAMメモリー
- 14 GBのSSDディスク容量
仮想環境 | YAMLのワークフローラベル |
---|---|
Windows Server 2019 | windows-latest or windows-2019 |
Ubuntu 20.04 | ubuntu-latest (see note) or ubuntu-20.04 |
Ubuntu 18.04 | ubuntu-latest (see note) or ubuntu-18.04 |
Ubuntu 16.04 | ubuntu-16.04 |
macOS Big Sur 11.0 | macos-11.0 |
macOS Catalina 10.15 | macos-latest もしくはmacos-10.15 |
Note: The ubuntu-latest
label is currently being migrated from the Ubuntu 18.04 virtual environment to Ubuntu 20.04. Specifying the ubuntu-latest
label during the migration might use either virtual environment. To explicitly use Ubuntu 20.04 or Ubuntu 18.04, specify ubuntu-20.04
or ubuntu-18.04
. When the migration is complete, ubuntu-latest
will use the Ubuntu 20.04 virtual environment. For more information about the migration, see "Ubuntu-latest workflows will use Ubuntu-20.04."
Note: The macOS 11.0 virtual environment is currently provided as a private preview only. Any users or organizations that are already using this runner can continue using it, but we're not accepting any further users or organizations at this time. The macos-latest
YAML workflow label still uses the macOS 10.15 virtual environment.
ワークフローログには、ジョブの実行に使用されたランナーが一覧表示されます。 詳しい情報については、「ワークフロー実行の履歴を表示する」を参照してください。
サポートされているソフトウェア
GitHub ホストランナーに含まれているソフトウェアツールは毎週更新されます。 各ランナーオペレーティングシステム用に含まれるツールの最新のリストについては、以下のリンクを参照してください。
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 16.04 LTS
- Windows Server 2019
- Windows Server 2016
- macOS 10.15
- macOS 11.0
Note: The ubuntu-latest
label is currently being migrated from the Ubuntu 18.04 virtual environment to Ubuntu 20.04. Specifying the ubuntu-latest
label during the migration might use either virtual environment. To explicitly use Ubuntu 20.04 or Ubuntu 18.04, specify ubuntu-20.04
or ubuntu-18.04
. When the migration is complete, ubuntu-latest
will use the Ubuntu 20.04 virtual environment. For more information about the migration, see "Ubuntu-latest workflows will use Ubuntu-20.04."
Note: The macOS 11.0 virtual environment is currently provided as a private preview only. Any users or organizations that are already using this runner can continue using it, but we're not accepting any further users or organizations at this time. The macos-latest
YAML workflow label still uses the macOS 10.15 virtual environment.
GitHubホストランナーには、オペレーティングシステムのデフォルトの組み込みツールに加え、上のリファレンスのリスト内のパッケージにが含まれています。 たとえば、Ubuntu及びmacOSのランナーには、grep
、find
、which
やその他のデフォルトのツールが含まれています。
Workflow logs include a link to the preinstalled tools on the exact runner. To find this information in the workflow log, expand the Set up job
section. Under that section, expand the Virtual Environment
section. The link following Included Software
will tell you the the preinstalled tools on the runner that ran the workflow. For more information, see "Viewing workflow run history."
We recommend using actions to interact with the software installed on runners. This approach has several benefits:
- Usually, actions provide more flexible functionality like versions selection, ability to pass arguments, and parameters
- It ensures the tool versions used in your workflow will remain the same regardless of software updates
リクエストしたいツールがある場合、actions/virtual-environments で Issue を開いてください。 This repository also contains announcements about all major software updates on runners.
IP アドレス
ノート: GitHubのOrganizationもしくはEnterpriseアカウントでIPアドレスの許可リストを使っているなら、GitHubホストランナーは利用できず、代わりにセルフホストランナーを使わなければなりません。 詳しい情報については「セルフホストランナーについて」を参照してください。
Windows及びUbuntuのランナーはAzureでホストされており、そのためAzureのデータセンターと同じIPアドレスの範囲を持ちます。 macOSランナーはGitHub独自のmacOSクラウドでホストされます。
GitHubホストランナーにGitHub Actionsが使うIPアドレスの範囲のリストを取得するには、GitHubのREST APIが利用できます。 詳しい情報については「GitHubメタ情報の取得」エンドポイントのレスポンス中のactions
キーを参照してください。 内部リソースへの未認可のアクセスを防ぐために許可リストが必要な場合には、このIPアドレスのリストを利用できます。
このAPIが返すGitHub ActionsのIPアドレスのリストは、週に1回更新されます。
ファイルシステム
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