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

GitHubホストランナーの仮想環境

GitHubは、ワークフローを実行するためのホストされた仮想マシンを提供します。 仮想マシンには、GitHub Actionsで使用できるツール、パッケージ、および設定の環境が含まれています。

GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. GitHub Actions is unavailable for per-repository plans, which are legacy billing plans. For more information, see "GitHub's products."

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

GitHubホストランナーについて

GitHubホストランナーはGitHub Actionsランナーアプリケーションがインストールされた、GitHubがホストする仮想マシンです。 GitHubは、Linux、Windows、macOSのランナーを提供します。

GitHubホストランナーを使用すると、マシンのメンテナンスとアップグレードが自動的に行われます。 ワークフローは、仮想マシンで直接実行することも、Dockerコンテナで実行することもできます。

ワークフローのジョブごとにランナーの種類を指定できます。 ワークフローの各ジョブは、仮想マシンの新しいインスタンスで実行されます。 ジョブ実行のステップはすべて、仮想マシンの同じインスタンスで実行されるため、そのジョブのアクションはファイルシステムを使用して情報を共有できます。

GitHubホストランナーのクラウドホスト

GitHubは、Microsoft AzureのStandard_DS2_v2仮想マシン上でGitHub ActionsランナーアプリケーションがインストールされたLinux及びWindowsランナーをホストします。 GitHubホストランナー は、Azure Pipelines Agent のフォークです。 Standard_DS2_v2マシンリソースに関する詳しい情報については、Microsoft Azureドキュメンテーションの「DSv2-series」を参照してください。

GitHubは、macOSランナーのホストにMacStadiumを使用しています。

GitHubホストランナーの管理権限

LinuxおよびmacOSの仮想環境は、パスワード不要のsudoにより動作します。 現在のユーザが持っているよりも高い権限が求められるコマンドやインストールツールを実行する必要がある場合は、パスワードを入力する必要なく、sudoを使うことができます。 詳しい情報については、「Sudo Manual」を参照してください。

Windowsの仮想マシンは、ユーザアカウント制御(UAC)が無効化されて管理者として動作するように設定されています。 詳しい情報については、「ユーザーアカウント制御のしくみ」を参照してください。

サポートされているランナーとハードウェアリソース

各仮想マシンで、同一のハードウェアリソースを使用できます。

  • 2コアCPU
  • 7 GBのRAMメモリー
  • 14 GBのSSDディスク容量
仮想環境 YAMLのワークフローラベル
Windows Server 2019 windows-latest
Ubuntu 18.04 ubuntu-latestまたはubuntu-18.04
Ubuntu 16.04 ubuntu-16.04
macOS Catalina 10.15 macos-latest

各ランナーでサポートされているソフトウェア、ツール、およびパッケージのリストについては、「GitHub Actionsの仮想環境でのソフトウェア」を参照してください。

GitHubホストランナーのIPアドレス

WindowsとUbuntuのランナーはAzureでホストされ、IPアドレスの範囲がAzureデータセンターと同じになります。 現在、ホストされているランナーはすべて米国東部2のAzureリージョンにありますが、今後リージョンは追加される可能性があります。

Microsoftは、AzureのIPアドレスの範囲をJSONファイルで毎週更新しています。このファイルは、Azure IP Ranges and Service Tags - Public Cloud (AzureのIPアドレス範囲とサービスタグ - パブリッククラウド)のウェブサイトからダウンロードできます。 内部リソースに対する不正アクセスを防ぐために許可リストが必要な場合には、このIPアドレスの範囲を利用できます。

JSONファイルには、valuesという配列があります。 この配列のうち、"AzureCloud.eastus2"nameidがあるオブジェクトで、サポート対象のIPアドレスが見つかります。

サポート対象のIPアドレスの範囲は、"addressPrefixes"オブジェクトにあります。 次に示すのは、JSONファイルを縮めたサンプルです。

{
  "changeNumber": 84,
  "cloud": "Public",
  "values": [
    {
      "name": "AzureCloud.eastus2",
      "id": "AzureCloud.eastus2",
      "properties": {
        "changeNumber": 33,
        "region": "eastus2",
        "platform": "Azure",
        "systemService": "",
        "addressPrefixes": [
          "13.68.0.0/17",
          "13.77.64.0/18",
          "13.104.147.0/25",
          ...
        ]
      }
    }
  ]
}

GitHubホストランナーのファイルシステム

GitHubは、仮想マシン上の特定のディレクトリでアクションとシェルコマンドを実行します。 仮想マシン上のファイルパスは静的なものではありません。 homeworkspaceworkflow ディレクトリのファイルパスを構築するには、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 - Note: GitHub Actions must be run by the default Docker user (root). Ensure your Dockerfile does not set the USER instruction, otherwise you will not be able to access GITHUB_WORKSPACE.

  • /github/workflow

参考リンク

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください