Guida

Migrare da Cirrus Runners a un Mac mini dedicato

Cirrus Runners non accetta nuovi clienti e i contratti in corso stanno per scadere. Sposta i job macOS di GitHub Actions su un Mac mini dedicato, in modo nativo o con le stesse immagini Tart.

60 minuti, aggiornato: 2026-09-15

Ad aprile 2026 Cirrus Labs ha annunciato il suo ingresso in OpenAI. Cirrus CI ha smesso di eseguire job il 1° giugno 2026. Cirrus Runners non accetta nuovi clienti e i clienti attuali sono supportati solo fino alla fine del contratto in corso.

Se i tuoi job macOS di GitHub Actions girano su Cirrus Runners, prima di quella data devono trovare una nuova casa. Questa guida mostra due modi per spostarli su un Mac mini dedicato e come scegliere tra i due.

Due modi per migrare

Strada A, un runner nativo. Il runner di GitHub Actions gira direttamente su macOS. È la configurazione più semplice, con le build più veloci e cache che restano calde tra un job e l'altro.

Strada B, macchine virtuali Tart. Usi le stesse immagini macOS di Cirrus che usi oggi, dentro Tart, sul tuo Mac. Ogni job parte da una macchina pulita, esattamente come su 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.

Un Mac, due configurazioni. Tutta la guida sta nella scelta.
Runner nativoVM Tart
Tempo di configurazioneCirca 30 minutiCirca un'ora
Stesso ambiente di CirrusNo, Xcode lo installi tuSì, stesse immagini
Macchina pulita per ogni jobNoSì
Cache calde tra un job e l'altroSìNo, a meno che non le includa nell'immagine
Job contemporanei per MacUno per runnerFino a due (limite della licenza Apple)

Scegli A se il repository è del tuo team e vuoi velocità. Scegli B se ti serve che ogni build parta da uno stato noto e pulito, o se nei workflow non vuoi cambiare nient'altro che l'etichetta.

Prima di iniziare

Elenca cosa usano oggi i tuoi workflow. Cerca le righe runs-on che puntano a immagini Cirrus, per esempio:

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

Annota la versione di macOS, le versioni di Xcode e tutto ciò che i job installano all'avvio. Quell'elenco ti servirà per entrambe le strade.

Strada A: runner nativo

Segui la nostra guida «Runner self-hosted di GitHub Actions su un Mac mini», linkata in fondo a questa pagina. Tratta Xcode, la registrazione del runner e la sua esecuzione come servizio.

Dai al runner un'etichetta che lo descriva, come macduty-m4. Poi cambia una riga in ogni workflow:

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

# after
runs-on: [self-hosted, macOS, ARM64, macduty-m4]

Esegui un workflow sul nuovo runner finché Cirrus funziona ancora. Quando passa, sposta il resto.

Strada B: le stesse immagini, in Tart

1. Installa Tart sul Mac

ssh
brew install cirruslabs/cli/tart

2. Scarica un'immagine Cirrus

Scegli l'immagine più vicina a quella che usi oggi. Cirrus pubblica immagini con e senza Xcode:

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

Il primo download è grande, spesso oltre 50 GB, quindi metti in conto un po' di tempo.

3. Avvia la VM e accedi

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

Le immagini Cirrus hanno un account amministratore predefinito. Cambiane la password prima di fare qualsiasi altra cosa.

4. Registra il runner dentro la VM

Dentro la VM, registra un runner GitHub Actions come nella strada A, con una differenza: aggiungi --ephemeral, così il runner prende un solo job e poi si ferma.

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

5. Una VM nuova per ogni job

Sul Mac stesso, un piccolo ciclo clona una copia pulita dell'immagine, ci esegue un job e la elimina:

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

In pratica vorrai uno script che recuperi anche un token di registrazione nuovo per ogni VM. Strumenti come Orchard, dello stesso team, se ne occupano nelle configurazioni più grandi.

La licenza di Apple consente al massimo due macchine virtuali macOS in esecuzione contemporaneamente su un Mac. Per più job in parallelo, aggiungi un altro Mac.

Dopo la migrazione

  • Controlla i tempi di build. Su un M4 dedicato o più recente, la maggior parte dei team vede build veloci come su Cirrus, e più veloci con le cache calde.
  • Tieni i vecchi workflow per una settimana. Lascia una copia delle righe runs-on di Cirrus in un branch finché i nuovi runner non hanno affrontato un rilascio completo.
  • Solo repository privati. I runner self-hosted non dovrebbero accettare job da fork pubblici.

Perché un Mac mini dedicato

  • Un mese a prezzo fisso. Nessuna fatturazione al minuto e niente da rinegoziare alla fine di un contratto.
  • Ogni generazione. Da M1 a M6 fianco a fianco, così puoi fare test sui chip che hanno i tuoi utenti.
  • Solo tuo. Nessuna coda, nessun vicino, nessun job di altri sul tuo hardware.
  • Ospitato nell'UE, soggetto al GDPR.

MacDuty ospita nei suoi rack Mac mini da M1 a M6, con macOS installato, pronti in pochi minuti. Aggiungi la tua chiave SSH dall'area clienti.

Disponibili oggi

Questi sono già nel rack. Scegline uno, guarda cosa include e crea l'account solo quando ordini.

Controllo dei rack in corso

Un Mac mini tutto tuo

Scegli una configurazione. Se non è disponibile, lasciaci la tua email e ti scriviamo il giorno in cui è nel rack.

Annuale: almeno 19% in meno rispetto al pagamento mensile

  • 16GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
  • Il più scelto
    24GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
  • 32GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
Visa Mastercard Bonifico SEPAPrezzi in EUR, IVA aggiunta al pagamento dove si applica. Minimo un mese, poi disdici in qualsiasi mese.

Avanti