macduty

ガイド

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

macOS, no VMactions.runner service,one job at a timeIts own diskDerivedData and packagesstay warm

Fastest, and you install Xcode yourself.

Path B, Tart virtual machines

macOS host, TartClean VMone job, deletedClean VMone job, deletedThe same Cirrus images you run today.Apple's licence: two at a time, per Mac.

Nothing changes in the workflow except the label.

Macは1台、構成は2通り。このガイドの要点はその選択です。
ネイティブランナーTartのVM
セットアップ時間約30分約1時間
Cirrusと同じ環境いいえ、Xcodeはご自身でインストールはい、同じイメージ
ジョブごとにクリーンなマシンNoあり
ジョブ間でウォームなキャッシュありいいえ、イメージに組み込まない限り
Mac 1台あたりの同時ジョブ数ランナーごとに1つ最大2つ(Appleのライセンスによる上限)

チームがリポジトリを所有していて速度を重視するならAを選んでください。すべてのビルドを既知のクリーンな状態から始める必要がある場合や、ワークフローでラベル以外を何も変えたくない場合はBを選んでください。

始める前に

現在のワークフローが使っているものを洗い出します。Cirrusのイメージを指定しているruns-onの行を探してください。例:

.github/workflows
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma

macOSのバージョン、Xcodeのバージョン、ジョブの最初にインストールしているものを控えておきます。どちらの方法でもこのリストが必要です。

方法A:ネイティブランナー

このページの下部にリンクがある当社のガイド「Mac miniでGitHub Actionsのセルフホストランナーを動かす」に従ってください。Xcode、ランナーの登録、サービスとしての実行を扱っています。

ランナーに、macduty-m4のような内容がわかるラベルを付けます。次に、各ワークフローの1行を変更します:

.github/workflows
# 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をインストールする

ssh
brew install cirruslabs/cli/tart

2. Cirrusのイメージを取得する

現在使っているものに最も近いイメージを選びます。CirrusはXcodeありとなしのイメージを公開しています:

ssh
tart clone ghcr.io/cirruslabs/macos-sequoia-xcode:latest ci-base

初回の取得はサイズが大きく、50 GBを超えることも多いので、時間に余裕を見てください。

3. VMを起動してログインする

ssh
tart run --no-graphics ci-base &
ssh admin@$(tart ip ci-base)

Cirrusのイメージには、デフォルトの管理者アカウントが含まれています。何よりも先に、そのパスワードを変更してください。

4. VM内でランナーを登録する

VM内で、方法Aと同じ手順でGitHub Actionsランナーを登録します。違いは1つだけで、--ephemeralを付けます。これでランナーはジョブを1つだけ受け取り、その後停止します。

VM内
./config.sh --url https://github.com/<owner>/<repo> --token <token> --ephemeral --labels tart-sequoia
./run.sh

5. ジョブごとに新しいVMを使う

Mac本体では、小さなループでイメージのクリーンなコピーを作成し、その中でジョブを1つ実行して削除します:

ssh
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%以上安い

  • 16GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 一番人気
    24GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 32GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
Visa Mastercard SEPA振込価格はEUR表示です。VATは該当する場合、お支払い手続き時に加算されます。 最低1か月、その後はどの月でも解約できます。

次へ