depot-github-runners について
組織所有のリポジトリで、Depot のマネージドなエフェメラル GitHub Actions runner を設定するスキルです。GitHub Actions をワークフローエンジンとして維持しつつ、runner ラベル、セットアップ、キャッシュ、ネットワーク接続、トラブルシューティングを扱います。
主な機能
- 01runner の設定とラベル選択
- 02Ubuntu、Windows、macOS の選択肢
- 03Depot Cache の自動利用
- 04Tailscale によるプライベートエンドポイント接続
- 05エグレスフィルタリングとトラブルシューティング
活用シーン
- 01GitHub Actions ジョブの Depot runner への移行
- 02runner の OS とサイズの選択
- 03CI ワークフローのビルドキャッシュ
- 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 マージキューがそれらの結論をどのように評価するかを比較しています。
セットアップ
- Depot ダッシュボード → GitHub Actions → Connect to GitHub → Install Depot GitHub App
- パブリックリポジトリの場合: GitHub 組織の設定 → Actions → ランナーグループ → Default → 「Allow public repositories」
- ワークフローファイルの
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)
| ラベル | CPU | RAM | ディスク | $/分 | 分単位の乗数 |
|---|---|---|---|---|---|
depot-ubuntu-24.04 | 2 | 8 GB | 100 GB | $0.004 | 1x |
depot-ubuntu-24.04-4 | 4 | 16 GB | 130 GB | $0.008 | 2x |
depot-ubuntu-24.04-8 | 8 | 32 GB | 150 GB | $0.016 | 4x |
depot-ubuntu-24.04-16 | 16 | 64 GB | 180 GB | $0.032 | 8x |
depot-ubuntu-24.04-32 | 32 | 128 GB | 200 GB | $0.064 | 16x |
depot-ubuntu-24.04-64 | 64 | 256 GB | 250 GB | $0.128 | 32x |
分単位の乗数が課金の要因です。課金分数 = 経過分数 × 乗数となり、より大きなランナーほど含まれる分数を速く消費します。
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
| ラベル | CPU | RAM | $/分 | 分単位の乗数 |
|---|---|---|---|---|
depot-windows-2025 | 2 | 8 GB | $0.008 | 2x |
depot-windows-2025-4 | 4 | 16 GB | $0.016 | 4x |
depot-windows-2025-8 から -64 まで | 8–64 | 32–256 GB | $0.032–$0.256 | 8x–64x |
Windows Server 2022 も利用可能です: depot-windows-2022 など。
Windows の制限: Hyper-V はありません(AWS EC2 の制限)。そのため、それを必要とする Docker ワークロードは動作しない可能性が高いです。
macOS (macOS 14/15 上の Apple M2、macOS 26 上の M4)
| ラベル | CPU | RAM | ディスク | $/分 |
|---|---|---|---|---|
depot-macos-26 | 8 | 24 GB | 400 GB | $0.08 |
depot-macos-15 / depot-macos-latest | 8 | 24 GB | 400 GB | $0.08 |
depot-macos-14 | 8 | 24 GB | 400 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 ランナーでは設定不要):
| ツール | 事前設定されている内容 |
|---|---|
| Turborepo | TURBO_API 環境変数が設定済み — turbo build を実行するだけ |
| Bazel | ~/.bazelrc が事前設定済み — bazel build //... を実行するだけ |
| sccache | SCCACHE_WEBDAV_ENDPOINT が設定済み — RUSTC_WRAPPER: 'sccache' を使用 |
| Maven | settings.xml が事前設定済み(キャッシュ ID depot-cache) |
| Pants | pants.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 の変更は不要です。
セットアップ:
- Tailscale ACL で、
tagOwnersの下にランナータグ(例:tag:depot-runner)を作成します。 Keys > Auth Keysの書き込みスコープを持つ Tailscale OAuth クライアントを作成し、そのタグを選択します。- Depot の組織設定で Tailscale 設定を開き、OAuth クライアント ID/シークレットを使用して接続します。
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:*"]
}
]
}
参照ドキュメント:
- https://depot.dev/docs/github-actions/how-to-guides/access-private-resources
- https://depot.dev/docs/integrations/tailscale
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 |