mcpField
D
depot-github-runners

depot-github-runners

github.com/posthogクラウド・DevOps40.5k137 回インストール今日更新
リポジトリ

depot-github-runners について

組織所有のリポジトリで、Depot のマネージドなエフェメラル GitHub Actions runner を設定するスキルです。GitHub Actions をワークフローエンジンとして維持しつつ、runner ラベル、セットアップ、キャッシュ、ネットワーク接続、トラブルシューティングを扱います。

主な機能

  1. 01runner の設定とラベル選択
  2. 02Ubuntu、Windows、macOS の選択肢
  3. 03Depot Cache の自動利用
  4. 04Tailscale によるプライベートエンドポイント接続
  5. 05エグレスフィルタリングとトラブルシューティング

活用シーン

  1. 01GitHub Actions ジョブの Depot runner への移行
  2. 02runner の OS とサイズの選択
  3. 03CI ワークフローのビルドキャッシュ
  4. 04CI ジョブからプライベートサービスへの接続

インストール

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

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

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

同梱ファイルUPSTREAM.md

詳細

Depot GitHub Actions ランナー

Depot は、マネージドでエフェメラルなシングルテナントの GitHub Actions ランナーを提供します。GitHub ホスト型ランナーのドロップイン代替であり、runs-on ラベルを変更するだけで、それ以外はすべてそのままです。

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

Depot ランナーは Depot CI ではありません

Depot ランナーは GitHub Actions をエンジンとして使い続けるため、ワークフローは .github/workflows/ にあり、チェックは依然として github-actions アプリから提供されます。 Depot CI は別の製品です。これは .depot/workflows/ を読み取り(GitHub Actions はこれを無視します)、depot-code-access アプリから独自のチェック実行を投稿します。 その場合は depot-ci スキルを使用してください。

その references/posthog-check-run-semantics.md では、スキップされたジョブ、空のマトリックスのジョブ、または continue-on-error のジョブに対して各エンジンが何を報告するか、そして GitHub と Trunk マージキューがそれらの結論をどのように評価するかを比較しています。

セットアップ

  1. Depot ダッシュボード → GitHub Actions → Connect to GitHub → Install Depot GitHub App
  2. パブリックリポジトリの場合: GitHub 組織の設定 → Actions → ランナーグループ → 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> を渡して、ワークフロー/リポジトリが存在する組織を対象にしてください。

ランナーラベル

単一のラベルを使用します。形式: depot-{os}-{version}[-{arch}][-{size}]

Ubuntu (x86, AMD)
ラベルCPURAMディスク$/分分単位の乗数
depot-ubuntu-24.0428 GB100 GB$0.0041x
depot-ubuntu-24.04-4416 GB130 GB$0.0082x
depot-ubuntu-24.04-8832 GB150 GB$0.0164x
depot-ubuntu-24.04-161664 GB180 GB$0.0328x
depot-ubuntu-24.04-3232128 GB200 GB$0.06416x
depot-ubuntu-24.04-6464256 GB250 GB$0.12832x

分単位の乗数が課金の要因です。課金分数 = 経過分数 × 乗数となり、より大きなランナーほど含まれる分数を速く消費します。

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 から -64 まで8–6432–256 GB$0.032–$0.2568x–64x

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

macOS (macOS 14/15 上の Apple M2、macOS 26 上の M4)
ラベルCPURAMディスク$/分
depot-macos-26824 GB400 GB$0.08
depot-macos-15 / depot-macos-latest824 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 15

移行例

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 を実行するだけ

キャッシュの動作: リポジトリ単位、ブランチ分離なし、暗号化、最大 1000 MiB/s のスループット、保持期間の設定可能(7/14/30 日)。

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

Dagger 統合

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

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

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

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

組織設定 → GitHub Actions Runners → Egress Rules で設定します。デフォルトルールを Allow または Deny に設定し、IP、CIDR、またはホスト名に対する個別の allow/deny ルールを追加します。Deny ルールは Allow ルールより優先されます。ループバックトラフィック(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: 入力を使用してください。

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 エミュレータのジョブを Depot CI に移動してください。そこではネストされた仮想化がデフォルトで有効になっています
「Lost communication with server」status.depot.dev を確認してください。組織の使用量上限を確認してください
「Operation was canceled」手動キャンセル、同時実行の cancel-in-progress、または OOM のいずれかです。ダッシュボードでメモリを確認してください
「Unable to get ACTIONS_ID_TOKEN_REQUEST_URL」Dependabot は OIDC をサポートしていません。DEPOT_TOKEN シークレットを使用してください
ワークフローが開始されない単一のランナーラベルを確認してください。ランナーグループがリポジトリを許可しているか確認してください。Depot GitHub App の権限を確認してください
ワークフローがスタックするGitHub API 経由で強制キャンセルしてください: POST /repos/{owner}/{repo}/actions/runs/{id}/force-cancel

コメント