mcpField
D
depot-github-runners

depot-github-runners

github.com/depotクラウド・DevOps2275 回インストール6 日前に更新
リポジトリ

depot-github-runners について

Depot GitHub Runnersは、GitHub Actionsワークフロー向けのマネージドな一時的シングルテナントランナーです。GitHubホストランナーを置き換えるチーム向けで、`runs-on`ラベルの変更で導入でき、自動キャッシュやジョブ分析も利用できます。

主な機能

  1. 01マネージド一時シングルテナントランナー
  2. 02Ubuntu、Windows、macOSに対応
  3. 03Depot Cacheによる自動キャッシュ
  4. 04ジョブのリソース指標と分析
  5. 05Tailscale経由のプライベートエンドポイント接続
  6. 06Linuxのエグレスルール設定

活用シーン

  1. 01GitHub ActionsジョブをDepotへ移行
  2. 02リソース負荷の高いCIジョブの実行
  3. 03繰り返しビルドでのキャッシュ利用
  4. 04ワークフローからプライベートサービスへ接続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/depot/skills --skill depot-github-runners

インストール後、Claude Code で/depot-github-runnersを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

Depot GitHub Actions ランナー

Depot は、管理型のエフェメラルなシングルテナント GitHub Actions ランナーを提供します。GitHub ホストランナーのドロップイン置き換えとして利用でき、runs-on ラベルを変更するだけで、それ以外はそのままです。

要件: リポジトリは個人アカウントではなく、GitHub 組織が所有している必要があります。

セットアップ

  1. Depot ダッシュボード → GitHub Actions → GitHub に接続 → Depot GitHub App をインストール
  2. パブリックリポジトリの場合:GitHub 組織の設定 → Actions → Runner groups → Default → 「Allow public repositories」
  3. ワークフローファイル内の runs-on を更新

複数の組織に所属するユーザー向けの組織コンテキストの確認

ユーザーが複数の組織に所属していて、想定しているリポジトリ、設定、ランナーが表示されない場合は、まず Depot の組織コンテキストを確認してください。

depot org show              # Current org ID
depot org list              # Orgs the user belongs to
depot org switch <org-id>   # Optional: set default org

対応しているコマンドでは、ワークフロー/リポジトリがある組織を対象にするため、--org <org-id> を指定してください。

ランナーラベル

ラベルは1つだけ使用します。形式:depot-{os}-{version}[-{arch}][-{size}]

Ubuntu(x86、AMD)
ラベルCPURAMディスク$/分分数の倍率
depot-ubuntu-24.0428 GB100 GB$0.0061x
depot-ubuntu-24.04-4416 GB130 GB$0.0122x
depot-ubuntu-24.04-8832 GB150 GB$0.0244x
depot-ubuntu-24.04-161664 GB180 GB$0.0488x
depot-ubuntu-24.04-3232128 GB200 GB$0.09616x
depot-ubuntu-24.04-6464256 GB250 GB$0.19232x

分数の倍率によって請求額が決まります。請求分数 = 経過分数 × 倍率のため、大きなランナーほど、含まれている分数を速く消費します。

Ubuntu 22.04 も利用できます:depot-ubuntu-22.04、depot-ubuntu-22.04-4 など。

Ubuntu(ARM — Graviton4)

Intel と同じサイズと料金です。末尾に -arm を追加してください: depot-ubuntu-24.04-arm、depot-ubuntu-24.04-arm-4、depot-ubuntu-24.04-arm-8 など。

Windows Server
ラベルCPURAM$/分分数の倍率
depot-windows-202528 GB$0.0082x
depot-windows-2025-4416 GB$0.0164x
depot-windows-2025-8 through -648–6432–256 GB$0.032–$0.2568x–64x

Windows Server 2022 も利用できます:depot-windows-2022 など。 Windows の制限: Hyper-V は利用できません(AWS EC2 の制限)。そのため、Hyper-V を必要とする Docker ワークロードは動作しない可能性が高いです。

macOS(macOS 14/15 では Apple M2、macOS 26 では M4)
ラベルCPURAMディスク$/分
depot-macos-26 / depot-macos-latest824 GB400 GB$0.08
depot-macos-15824 GB400 GB$0.08
depot-macos-14824 GB400 GB$0.08

macOS は完全なエラスティック構成ではなく、固定プールで FIFO キューイングを行います。

エイリアス

depot-ubuntu-latest → Ubuntu 24.04、depot-windows-latest → Windows 2025、depot-macos-latest → macOS 26

移行例

jobs:
  build:
    # Before:
    # runs-on: ubuntu-latest
    # After:
    runs-on: depot-ubuntu-24.04-4
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test

よくある間違い

# ❌ WRONG — multiple labels cause stability issues
runs-on: [self-hosted, depot-ubuntu-24.04]

# ✅ CORRECT — always use a single Depot runner label
runs-on: depot-ubuntu-24.04-4

キャッシュ

GitHub Actions キャッシュ API を使用するアクションでは、設定を変更しなくても自動的にDepot Cacheが使用されます。これには、actions/cache、actions/setup-node、actions/setup-python、actions/setup-java、および@actions/cacheを使用するすべてのアクションが含まれます。

事前設定済みのビルドツールキャッシュ(Depot ランナーでは設定不要):

ツール事前設定の内容
TurborepoTURBO_API環境変数が設定済みです。turbo buildを実行するだけです
Bazel~/.bazelrcが事前に設定済みです。bazel build //...を実行するだけです
sccacheSCCACHE_WEBDAV_ENDPOINTが設定済みです。RUSTC_WRAPPER: 'sccache'を使用します
Mavensettings.xmlが事前に設定済みです(キャッシュ ID depot-cache)
Pantspants.tomlが事前設定済みです。pants package ::を実行するだけです
moonrepo環境変数が設定済みです。moon run buildを実行するだけです
Xcode 26+Depot macOS ランナーでは、コンパイルキャッシュにDepot Cacheが自動的に使用されます

キャッシュの動作:リポジトリ単位で管理され、ブランチごとの分離はなく、暗号化され、最大1000 MiB/sのスループットで、保持期間(7/14/30日)を設定できます。

自動キャッシュを無効にするには、組織の設定で「Allow Actions jobs to automatically connect to Depot Cache」をオフにします。

Xcodeの場合、ジョブで独自の設定ファイルを指定していないときに限り、ランナーはXCODE_XCCONFIG_FILEを設定します。ジョブまたはワークフローで無効にするには、DEPOT_XCODE_CACHE_ENABLED: '0'を設定します。ビルド後にdepot/xcode-compilation-cache-summary@v1を追加すると、キャッシュの統計情報を報告できます。Xcodeのコンパイルキャッシュはローカルワークステーションではサポートされていません。ビルド設定とトラブルシューティングについては、https://depot.dev/docs/cache/integrations/xcode を参照してください。

Dagger との統合

**非推奨:**Depot GitHub Actions ランナーでのDagger Engineサポートは非推奨となっており、今後のアップデートで削除される予定です。新しいワークフローでは、この統合を推奨しないでください。

runs-on: depot-ubuntu-latest,dagger=0.18.4

永続的なNVMeキャッシュを備えた専用のDagger Engine VMを起動します。Dagger CLIはプリインストールされています。追加料金は1分あたり$0.04です。

エグレスフィルタリング(Linuxのみ)

組織の設定 → GitHub Actions Runners → Egress Rules で設定します。デフォルトルールをAllowまたはDenyに設定し、IP、CIDR、ホスト名に対する個別の許可/拒否ルールを追加します。拒否ルールは許可ルールより優先されます。ループバックトラフィック(127.0.0.1、::1)は常に許可され、Depotはdepot.devドメイン、GitHub ActionsサービスのIP、AWSサービスのIPを自動的に許可リストに追加します。ルール内のホスト名は解決され、/etc/hostsに固定されます。depot buildを使用したコンテナビルドは、エグレスフィルタリングが有効でも動作します。DepotはBuildKitマシンのIPを割り当て時に許可リストへ追加します。macOSおよびWindowsではサポートされていません。Tailscaleとは併用できません。

Tailscaleでプライベートエンドポイントにアクセスする

静的IPの許可リストを使わずに、ジョブからプライベートサービス(内部API、データベース、プライベートサブネット)にアクセスする必要がある場合は、Tailscaleを使用します。

Depotでの動作:

  • Depot GitHub Actionsランナーは、ジョブ開始時に一時ノードとしてtailnetに参加します。
  • アクセスはTailscale ACLで制御します(推奨タグ:tag:depot-runner)。
  • ランナーをプライベートエンドポイントに接続するために、ワークフローYAMLを変更する必要はありません。

設定:

  1. Tailscale ACLで、tagOwnersの下にランナー用のタグ(例:tag:depot-runner)を作成します。
  2. Keys > Auth Keysの書き込みスコープを持つTailscale OAuthクライアントを作成し、そのタグを選択します。
  3. Depotの組織設定でTailscaleの設定を開き、OAuthクライアントID/シークレットを使用して接続します。
  4. tag:depot-runnerが対象のホスト/サブネットにアクセスできるようACLを追加します。

ACLの例:

{
  "acls": [
    {
      "action": "accept",
      "src": ["tag:depot-runner"],
      "dst": ["database-hostname"]
    }
  ]
}
{
  "acls": [
    {
      "action": "accept",
      "src": ["tag:depot-runner"],
      "dst": ["192.0.2.0/24:*"]
    }
  ]
}

参考ドキュメント:

Dependabot

GitHubの組織設定で「Dependabot on self-hosted runners」を有効にします。ジョブはdepot-ubuntu-latestで自動実行されます。

**重要:**DependabotではOIDCはサポートされていません。代わりに、DEPOT_TOKENシークレットを使用してtoken:入力を指定してください。

ジョブとリソース使用状況の確認

Depot 上の GitHub Actions ジョブには depot jobs を使用します。Depot CI ジョブには、代わりに depot ci コマンドを使用します。

depot jobs --repo owner/repo --conclusion failure --output json
depot jobs <github-job-id> --repo owner/repo --output json
depot jobs metrics <github-job-id> --repo owner/repo --output json
depot jobs analytics --repo owner/repo --job test --output json

4 つの形式すべてで、--org、--token、および auto、table、json のいずれかを指定する --output を受け付けます。パイプに出力する場合、ログインを促すことなく、デフォルトで JSON が使用されます。1 つのジョブまたはそのメトリクスを確認するには、--repo を 1 つだけ指定する必要があります。

一覧表示では、繰り返し指定できる --repo、--status、--conclusion、--runner-label と、--query を使用できます。ステータスの値は queued、waiting、running、finished です。結論の値は success、failure、cancelled、skipped、neutral です。分析のフィルターには、--repo、--workflow、--workflow-path、--job、--runner-label を使用できます。

一覧表示と分析は、一度に 1 ページずつ返されます。--page-size(1~250、デフォルトは 50)と、返された nextPageToken を --page-token とともに使用してください。フィルターと時間範囲は変更しないでください。どちらもデフォルトでは過去 30 日間が対象です。正の範囲が最大 90 日となるように、RFC 3339 形式のタイムスタンプで --start と --end を両方指定してください。

ジョブごとのメトリクスには、CPU とメモリのサンプル、統計情報、および利用可能性が含まれます。JSON の使用率は 0~1 の小数で、テーブルではパーセンテージで表示されます。測定値がない場合は 0 ではなく、値なしとして扱われます。実行ウィンドウは最大 7 日間で、返されるサンプルは最大 5,000 件です。統計情報は、ダウンサンプリング前に観測されたすべてのサンプルを使用します。集計分析には、ジョブ完了から最大 15 分の遅延が生じることがあります。ステップの所要時間は利用できません。

SSH デバッグ

steps:
  - uses: actions/checkout@v4
  - uses: mxschmitt/action-tmate@v3
  - run: npm test

トラブルシューティング

エラー対処法
"No space left on device"OS は約 70 GB のディスクを使用します。より大容量のランナーにアップグレードするか、ワークフローでディスクをクリーンアップしてください
"Failed to open the device 'kvm'" / "Could not access KVM kernel module"ランナーには /dev/kvm がありません。KVM/QEMU/Android-emulator のジョブは、デフォルトでネストされた仮想化が有効な Depot CI に移行してください
"Lost communication with server"status.depot.dev を確認し、組織の使用量上限を確認してください
"Operation was canceled"手動キャンセル、同時実行による進行中のキャンセル、または OOM が原因です。ダッシュボードでメモリを確認してください
"Unable to get ACTIONS_ID_TOKEN_REQUEST_URL"Dependabot は OIDC をサポートしていません。DEPOT_TOKEN シークレットを使用してください
ワークフローが開始しないランナーラベルが 1 つだけであることを確認してください。ランナーグループがリポジトリを許可していることと、Depot GitHub App の権限を確認してください
ワークフローが停止したままGitHub API で強制キャンセルしてください:POST /repos/{owner}/{repo}/actions/runs/{id}/force-cancel

コメント