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
Fastest, and you install Xcode yourself.
Path B, Tart virtual machines
Nothing changes in the workflow except the label.
| Runner nativo | VM Tart | |
|---|---|---|
| Tempo di configurazione | Circa 30 minuti | Circa un'ora |
| Stesso ambiente di Cirrus | No, Xcode lo installi tu | Sì, stesse immagini |
| Macchina pulita per ogni job | No | Sì |
| Cache calde tra un job e l'altro | Sì | No, a meno che non le includa nell'immagine |
| Job contemporanei per Mac | Uno per runner | Fino 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:
runs-on: ghcr.io/cirruslabs/macos-runner:sonomaAnnota 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:
# 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
brew install cirruslabs/cli/tart2. Scarica un'immagine Cirrus
Scegli l'immagine più vicina a quella che usi oggi. Cirrus pubblica immagini con e senza Xcode:
tart clone ghcr.io/cirruslabs/macos-sequoia-xcode:latest ci-baseIl primo download è grande, spesso oltre 50 GB, quindi metti in conto un po' di tempo.
3. Avvia la VM e accedi
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.
./config.sh --url https://github.com/<owner>/<repo> --token <token> --ephemeral --labels tart-sequoia
./run.sh5. 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:
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
doneIn 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
Avanti