ガイド
Cirrus Runnersから専用のMac miniへの移行
Cirrus Runnersは新規顧客を受け付けておらず、既存の契約も終わりつつあります。macOSのGitHub Actionsジョブを専有のMac miniに移しましょう。ネイティブでも、同じTartイメージでも移行できます。
60分、2026-09-15更新
2026年4月、Cirrus LabsはOpenAIに加わることを発表しました。Cirrus CIは2026年6月1日にジョブの実行を停止しました。Cirrus Runnersは新規顧客を受け付けておらず、既存顧客へのサポートは現在の契約が終わるまでです。
macOSのGitHub ActionsジョブをCirrus Runnersで実行している場合は、その日までに移行先が必要です。このガイドでは、専有のMac miniに移す2つの方法と、その選び方を説明します。
2つの移行方法
方法A:ネイティブランナー。GitHub ActionsランナーをmacOS上で直接実行します。最もシンプルな構成で、ビルドが最も速く、キャッシュはジョブ間でウォームなまま残ります。
方法B:Tartの仮想マシン。現在使っているのと同じCirrusのmacOSイメージを、お客様のMac上のTartで実行します。Cirrusとまったく同じく、すべてのジョブがクリーンなマシンから始まります。
Path A, native runner
Fastest, and you install Xcode yourself.
Path B, Tart virtual machines
Nothing changes in the workflow except the label.
| ネイティブランナー | TartのVM | |
|---|---|---|
| セットアップ時間 | 約30分 | 約1時間 |
| Cirrusと同じ環境 | いいえ、Xcodeはご自身でインストール | はい、同じイメージ |
| ジョブごとにクリーンなマシン | No | あり |
| ジョブ間でウォームなキャッシュ | あり | いいえ、イメージに組み込まない限り |
| Mac 1台あたりの同時ジョブ数 | ランナーごとに1つ | 最大2つ(Appleのライセンスによる上限) |
チームがリポジトリを所有していて速度を重視するならAを選んでください。すべてのビルドを既知のクリーンな状態から始める必要がある場合や、ワークフローでラベル以外を何も変えたくない場合はBを選んでください。
始める前に
現在のワークフローが使っているものを洗い出します。Cirrusのイメージを指定しているruns-onの行を探してください。例:
runs-on: ghcr.io/cirruslabs/macos-runner:sonomamacOSのバージョン、Xcodeのバージョン、ジョブの最初にインストールしているものを控えておきます。どちらの方法でもこのリストが必要です。
方法A:ネイティブランナー
このページの下部にリンクがある当社のガイド「Mac miniでGitHub Actionsのセルフホストランナーを動かす」に従ってください。Xcode、ランナーの登録、サービスとしての実行を扱っています。
ランナーに、macduty-m4のような内容がわかるラベルを付けます。次に、各ワークフローの1行を変更します:
# before
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma
# after
runs-on: [self-hosted, macOS, ARM64, macduty-m4]Cirrusがまだ動いているうちに、新しいランナーでワークフローを1つ実行します。成功したら、残りを移します。
方法B:同じイメージをTartで
1. MacにTartをインストールする
brew install cirruslabs/cli/tart2. Cirrusのイメージを取得する
現在使っているものに最も近いイメージを選びます。CirrusはXcodeありとなしのイメージを公開しています:
tart clone ghcr.io/cirruslabs/macos-sequoia-xcode:latest ci-base初回の取得はサイズが大きく、50 GBを超えることも多いので、時間に余裕を見てください。
3. VMを起動してログインする
tart run --no-graphics ci-base &
ssh admin@$(tart ip ci-base)Cirrusのイメージには、デフォルトの管理者アカウントが含まれています。何よりも先に、そのパスワードを変更してください。
4. VM内でランナーを登録する
VM内で、方法Aと同じ手順でGitHub Actionsランナーを登録します。違いは1つだけで、--ephemeralを付けます。これでランナーはジョブを1つだけ受け取り、その後停止します。
./config.sh --url https://github.com/<owner>/<repo> --token <token> --ephemeral --labels tart-sequoia
./run.sh5. ジョブごとに新しいVMを使う
Mac本体では、小さなループでイメージのクリーンなコピーを作成し、その中でジョブを1つ実行して削除します:
while true; do
tart clone ci-base job
tart run --no-graphics job &
# wait for the job to finish, then:
tart stop job
tart delete job
done実際には、VMごとに新しい登録トークンも取得するスクリプトが必要になります。より大きな構成では、同じチームが開発したOrchardなどのツールがこれを処理します。
Appleのライセンスでは、1台のMacで同時に実行できるmacOS仮想マシンは最大2つです。さらに多くのジョブを並行して実行するには、Macを追加してください。
移行後
- ビルド時間を確認します。M4以降の専有マシンでは、ほとんどのチームでCirrusと同じ速さになり、キャッシュがウォームならさらに速くなります。
- 古いワークフローは1週間残しておきます。新しいランナーでリリースを一通り終えるまで、Cirrusのruns-onの行のコピーをブランチに残しておいてください。
- プライベートリポジトリのみで使ってください。セルフホストランナーにパブリックなフォークからのジョブを実行させるべきではありません。
専用のMac miniを使う理由
- 月額は定額です。分単位の課金はなく、契約終了時に再交渉することもありません。
- すべての世代。M1からM6までを並べて使えるので、ユーザーが使っているチップでテストできます。
- お客様専用です。待ち行列も同居ユーザーもなく、お客様のハードウェアで他人のジョブが動くこともありません。
- EU域内でホスティングされ、GDPR(EU一般データ保護規則)が適用されます。
MacDutyはM1からM6までのMac miniをラックに設置しています。macOSはインストール済みで、数分で使えるようになります。SSHキーはマイページから追加できます。
本日在庫あり
これらは現在ラックに設置済みです。1台選んで付属するものを確認し、アカウントは注文時に作成するだけで済みます。
ラックを確認中
お客様専用のMac mini
構成を選んでください。在庫がない場合はメールアドレスを残していただければ、ラックに設置した日にご連絡します。
年額:月払いより19%以上安い
次へ