DevOps

2026 レンタル Mac mini M4 16GB の GitHub Actions セルフホストランナー:スコープ表、ワークスペース・ディスク、2並列ジョブ、シークレット衛生、12段スモーク

レンタル Mac mini M4 16GB クラウドホスト上の GitHub Actions セルフホストランナー

GitHub Actions のセルフホストランナーは「無料の macOS 分」ではなく、財務・ディスク・メモリの契約です。 チームは 16GB ユニファイドメモリMac mini M4 レンタルホストを、予測可能な Xcode/Fastlane/SwiftPM、温かい DerivedData、アジア太平洋のレビュア近くの egress が必要なときに選びます。本稿は 16GB に載せるワークフロースコープ、ワークスペースと Actions キャッシュの APFS 消費、実務上の上限である 2 並列ジョブ、登録トークンの git 除外、6 リージョンの待ち時間、本番前に証明する 12 段スモーク を整理します。

公式の出発点:GitHub セルフホストランナー公式ドキュメントを Slack に貼る前に読んでください。ハードウェアは Apple Mac mini 仕様(M4 クラス)に合わせます。

開示:本記事の Mac レンタルは KvmZone サービスです。料金は公開レート、ハードウェアは Apple 公式 Mac mini 仕様に基づきます。

ランナースコープ表:レンタル M4 16GB に載せるもの

セルフホストランナーは macOS 専用ステップ(署名、公証、シミュレータスモーク)や Xcode マイナーを固定したいときに有効です。16GB を 64GB Linux ファームのように扱い、測定なしで統合を6本並べると失敗します。

スコープ典型ステップ16GBメモ
ライト CIlint・単体・フル Archive なし swift build推奨Pair with Git shallow/sparse マトリクス
リリースレーンArchive・Fastlane・TestFlight同時1ジョブSee Fastlane TestFlight マトリクス
エージェント hookCI 横の webhookホスト分割Cross-read OpenClaw webhook CI 連携
重量 ML / DockerGPU 前提のマルチコンテナ不適Linux ホストランナーか大型機へ
引用ルール: ホストあたり主スコープ1つ(モバイルリリース、またはライト CI+bot)。ピークで両立するなら 並列ライトジョブ表どおり第2台を借ります。

ラベル・グループ・Org 境界

  • 複数リポで Xcode を共有するなら Organization 登録。実験のみリポレベル。
  • 財務が読めるラベル:macos-m4-16gb-tokyorelease-laneci-lightfast は不可)。
  • 許可リポを社内 allow-list に記載。セルフホストは許可リポの workflow を信頼します。

Actions ワークスペースのディスク表

GitHub Actions は _work/ に checkout を展開し、ツール別にキャッシュします。レンタル Mac mini では APFS 空きが隠れたキュー殺し—DerivedData と actions/cache が 256GB SKU を共有すると swap が増幅します。

信号黄帯対応
ジョブ前 APFS 空き<18GB新規ジョブ停止・キャッシュ整理・1TB検討
マルチリポ checkout>40GB working treeGit ディスク表の shallow+sparse
DerivedData+Archive>80GB steady週次掃除または 2TB
Actions キャッシュ>30GB per repoキャッシュキー整理・リリースホスト分割

ディスクの真実: SSD 拡張は RAM を増やしませんが、2 ジョブが短時間重なるときの swap 停滞を下げます—「queued」謎の1週間より安いです。

16GB ユニファイドメモリの並列ジョブ

Apple Silicon は CPU/GPU/システムで 16GB を共有します。16GB ホストでは混在レーンで macOS ジョブ2本を上限、フル Archive やシミュレータ統合は 1本にします。

並列方針用途メモリ
max-parallel: 1リリース Archive・Fastlane 夜30分ジョブ後 swap 差 <15%
max-parallel: 2別リポの lint+単体、軽量 Nodeswap が基準超なら メモリプレイブックで中断
第2レンタルホストリリース+webhook 24/7sysctl 微調整より安い

フレーク調査では ACTIONS_RUNNER_HOOK_JOB_STARTEDmemory_pressure をログ化—財務はグラフを好みます。

シークレット・SSH・ランナー衛生

セルフホストは workflow YAML の任意コードを実行します。セキュリティは ホスト衛生+シークレット経路であり「プライベート=安全」ではありません。

  • 専用 macOS ユーザーでランナーを入れ、SSH と VNC のワークフローで運用。
  • PAT とクラウド鍵は Organization secrets。ログに RUNNER_TOKEN を出しません。
  • 再プロビジョニング後は登録トークンをローテーション。.runner が持ち出されたら侵害扱い。
  • ランナーは launchd KeepAlive。再起動手順は Runbook に。
SSH 優先: アップグレード・ログ・キャッシュ掃除は GUI 不要。Apple 権限ダイアログのみ GUI。

CI ランナーの6リージョン配置

KvmZone ノード:香港、日本(東京)、韓国(ソウル)、シンガポール、米国東、米国西。SaaS の CDN 表記ではなく、PR をマージしログを読む人に近いノードを選びます。東京ノードは JP レビュアとコンプライアンス文書に向きます。

プロファイルリージョン併読
CN 営業時間モバイル CI香港またはシンガポールGit shallow 表
JP コンプライアンス+レビュア TZ東京Fastlane POP 表
ソウルレビュア横の KR 自動化韓国(ソウル)並列レンタル表
米国太平洋夕方バッチ米国西OpenClaw webhook レーン
EU 引き継ぎ米国東第2ホスト分割

ランナーラベルを固定する前に 料金ページでリージョンを Compare—egress と TZ が CPU 表より重要です。

12段ランナースモーク

導入後または Xcode 更新後に実施。財務の週次 ID とスクリーンショットを保存します。

ゲート合格
1SSHランナーユーザーで非対話シェル
2GitHub 到達curl -I https://github.com プロキシ意外なし
3ランナーサービスlaunchctl リスナー稼働
4Org 登録GitHub UI でラベル確認
5Xcode selectxcode-select -p Runbook マイナー一致
6ディスク空き≥18GB システム APFS 空き
7ワークフロードライランlint のみのテスト分支で緑
8キャッシュパスジョブ後キャッシュ上限内
9メモリ20分後 swap 差 <15%
10シークレットActions ログにトークンなし
11リージョンRunbook+ラベルにノード記載
12財務週次 ID と料金スクショ

9–10 が失敗なら GitHub キューを責める前に メモリ圧迫を切り分けます。

FAQ

16GB で GitHub Actions を何本並列できますか?+
混在レーンでは macOS ジョブ2本を上限。Archive やシミュレータ統合は直列化。リリースと bot 同居なら並列表どおり第2台を借ります。
セルフホストと GitHub ホスト macOS の違いは?+
DerivedData 温存・Xcode pin・レビュア近くの6リージョン POP ではセルフホスト。バースト OSS で運用ゼロならホスト macOS。
登録トークンをリポジトリに置きますか?+
登録トークンや PAT はコミットしません。Organization secrets で注入し、再プロビジョニング後にローテーション。
ランナー導入に VNC は必要ですか?+
通常不要—導入とサービスは SSH。macOS 権限のみ GUI。SSH と VNCを参照。

レンタル前にリージョンとランナースコープを Compare

6リージョンの Mac mini M4 料金を Compare し、ランナーラベルを Runbook に記載、並列は2本上限、本番前に12段スモークを通過してください。