Guida

Runner macOS self-hosted per GitHub Actions

Un runner macOS self-hosted è un Mac che controlli tu. Esegue i job di GitHub Actions al posto delle macchine cloud condivise di GitHub. Registri il runner una volta, indichi il runner nel workflow, e le build girano su un hardware che resta caldo tra un job e l’altro.

Perché i team lasciano i runner macOS ospitati

GitHub fattura i runner macOS circa da $0.062 a $0.102 al minuto. È circa dieci volte la tariffa Linux. Per build occasionali va bene. Per un team che rilascia ogni giorno diventa caro. Quando la macchina è tua cambiano tre cose:

  • Il costo non cresce con l’uso. Una macchina a prezzo mensile fisso costa uguale con 1.000 o con 20.000 minuti.
  • Le cache restano. Le cache di DerivedData, CocoaPods, SwiftPM e npm restano sull’SSD locale. Le build incrementali saltano gran parte del lavoro che un runner nuovo ripete.
  • L’ambiente è stabile. Fissi la versione di Xcode una volta. Non devi adattarti agli aggiornamenti delle immagini ospitate, con i tempi decisi da altri.

I compromessi, detti chiaramente

Il self-hosting ha anche dei lati negativi. Su una sola macchina i job vanno in fila, quindi matrici parallele pesanti richiedono più unità. Se fai build di pull request non fidate, la sicurezza del runner è a carico tuo. Per questo GitHub consiglia i runner self-hosted per i repository privati. E qualcuno deve occuparsi degli aggiornamenti di macOS, delle installazioni di Xcode e di tenere in vita il servizio del runner.

MacRun esiste per toglierti quest’ultima parte. Tu hai la macchina dedicata e il prezzo fisso. Noi gestiamo preparazione, supervisione e cancellazione dei dati.

Come cambia il workflow

La registrazione del runner è un comando da eseguire una volta. Dopo, nella pipeline cambiano due righe:

 jobs:
   build:
-    runs-on: macos-latest
+    runs-on: [self-hosted, macOS, macrun-unit-01]

Tutto il resto non cambia, compresi gli step, i secret e gli artifact che hai già. La procedura completa è nella guida alla configurazione.

Costruirlo da te o noleggiarlo

Se hai già hardware Apple inutilizzato e qualcuno che lo mantiene, un runner sul tuo Mac è una scelta sensata. Se preferisci non comprare hardware, non installarlo in rack e non sorvegliare il servizio del runner, una macchina dedicata a noleggio ti dà gli stessi risparmi senza il lavoro operativo. Fai i tuoi conti con il calcolatore dei costi.

Domande frequenti

Cos’è un runner macOS self-hosted?

+

È un Mac che controlli tu e che esegue i job di GitHub Actions al posto delle macchine ospitate e condivise di GitHub. Installi l’agente runner di Actions, lo registri nel repository o nell’organizzazione, e lo scegli nel workflow con un’etichetta runs-on.

Un runner macOS self-hosted costa meno di quelli ospitati da GitHub?

+

Dipende dal volume. macOS ospitato da GitHub costa circa da $0.062 a $0.102 al minuto. Un runner dedicato a prezzo fisso di $139 al mese va in pari intorno a 2,242 minuti al mese con la tariffa più bassa. Oltre quella soglia, ogni minuto è gratis.

I runner self-hosted sono sicuri per i repository pubblici?

+

GitHub consiglia i runner self-hosted per i repository privati. Altrimenti la pull request di un fork può eseguire codice non fidato sulla tua macchina. Se devi usarli su repo pubblici, richiedi l’approvazione per i workflow dei fork e isola il runner da tutto ciò a cui tieni.

Devo tenere attivo il servizio del runner?

+

Sì, il runner deve essere online per prendere i job. Su MacRun un demone di supervisione controlla il servizio. Se si blocca, lo riavvia entro circa 30 secondi, quindi non devi monitorarlo tu.

Guide correlate