Guida

Runner macOS di GitHub o un Mac dedicato, costi alla mano

La tariffa al minuto è solo l’inizio del confronto. I runner macOS ospitati ti fanno pagare anche lavoro che una macchina calda non ripeterebbe. E costano tempo degli sviluppatori in coda. Questa pagina confronta le due opzioni a tre livelli di utilizzo realistici, con ogni ipotesi dichiarata.

Le ipotesi

  • macOS ospitato pagato $0.062 al minuto, la tariffa del runner standard, con arrotondamento per job.
  • Un runner ospitato a freddo passa circa 3 minuti per job a ripristinare le dipendenze e ricostruire ciò che una cache calda avrebbe tenuto. È tempo fatturato.
  • Un M6 mini dedicato a un fisso di $139 al mese, con cache calde e nessun ripristino per job.
  • GitHub non fa pagare l’attesa, ma l’attesa è reale. Nelle ore di punta la coda per un runner macOS dura spesso qualche minuto.

Tre team, un mese

                       light        steady       heavy
  jobs per month         120          400          900
  minutes per job          8           10           12
  billed on hosted     1,320 min    5,200 min   13,500 min
    incl. cache restore  (360)      (1,200)      (2,700)
  hosted cost           $82         $322         $837
  dedicated M6          $139        $139         $139
  monthly difference   -$37        +$203        +$718

Il team leggero dovrebbe restare sui runner ospitati. Il team costante risparmia un paio di centinaia di dollari al mese e ha build più veloci. Il team intenso paga ogni mese più volte il costo di una macchina, e ne ottiene una più lenta.

Da dove vengono i minuti nascosti

Ogni job ospitato parte da un’immagine pulita. Riscarica i pacchetti SwiftPM, i CocoaPods e parti del runtime del simulatore, poi ricostruisce la DerivedData da zero. In un progetto reale sono diversi minuti fatturati per job, prima che si compili una riga del tuo codice. Su una macchina dedicata quei file restano. La seconda build della giornata riparte da dove si era fermata la prima.

Velocità, non solo soldi

La stessa cache calda che elimina minuti fatturati elimina anche minuti di attesa reale. Spesso una build ospitata da 12 minuti, spostata su un Mac mini dedicato con cache calda, finisce in un tempo da 4 a 6 minuti. Davanti non c’è nessuna coda. È la differenza tra una pull request verificata prima di pranzo e una verificata dopo.

Cosa non risolve un Mac dedicato

  • Matrici parallele. Una macchina esegue un job alla volta. Dividi la matrice o aggiungi unità.
  • Repository pubblici. Non eseguire codice non fidato delle pull request su una macchina a cui tieni. Lascia quei job sui runner ospitati.
  • Qualcuno deve gestirla. Aggiornamenti, servizio del runner, cancellazioni. È ciò che MacRun fa per il prezzo fisso. Con un semplice noleggio della macchina, tocca a te.

Fai i tuoi conti nel calcolatore, e trovi la tabella completa delle tariffe nella pagina sui prezzi di GitHub Actions.

Domande frequenti

Un Mac dedicato costa sempre meno dei runner macOS ospitati da GitHub?

+

No. Sotto circa 2,242 minuti macOS al mese, la fatturazione a consumo costa meno di una macchina fissa a $139. Sopra quella soglia il Mac dedicato costa meno, e la differenza cresce con l’uso.

Perché i runner ospitati fatturano più minuti di quanto dura la mia build?

+

Perché ogni job parte da un’immagine pulita. Prima di compilare, spende minuti fatturati a ripristinare le dipendenze e ricostruire le cache. Una macchina dedicata calda salta quel lavoro in ogni job dopo il primo.

Quanto è più veloce un Mac mini dedicato di un runner ospitato?

+

Con una cache calda e senza coda, una build ospitata da 12 minuti finisce spesso in un tempo da 4 a 6 minuti. Il guadagno esatto dipende da quanto della tua build è lavoro su dipendenze e cache.

Posso usarli entrambi?

+

Sì, e molti team lo fanno. Esegui sul Mac dedicato la build del branch principale e quasi tutte le pull request. Lascia sui runner ospitati da GitHub le matrici ampie di dispositivi e i job dei repository pubblici.

Guide correlate