Runners macOS hospedados pelo GitHub vs um Mac dedicado, com contas honestas
A tarifa por minuto é só o começo da comparação. Os runners macOS hospedados também cobram por trabalho que uma máquina aquecida não repetiria. E custam tempo de engenharia em filas. Esta página compara as duas opções em três níveis de uso realistas, com cada premissa explicada.
As premissas
- macOS hospedado cobrado a $0.062 por minuto, a tarifa do runner padrão, arredondada para cima em cada job.
- Um runner hospedado frio gasta cerca de 3 minutos por job restaurando dependências e refazendo o que um cache aquecido teria guardado. Esse tempo é cobrado.
- Um mini M6 dedicado a $139 fixos por mês, com caches aquecidos e sem restauração por job.
- O GitHub não cobra a espera, mas ela existe. A fila para um runner macOS costuma ser de alguns minutos nos horários de pico.
Três equipes, um mês
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 +$718A equipe leve deve ficar nos runners hospedados. A equipe constante economiza umas duas centenas de dólares por mês e ganha builds mais rápidos. A equipe intensa paga várias vezes o preço de uma máquina todo mês, e ainda leva uma mais lenta.
De onde vêm os minutos escondidos
Cada job hospedado começa de uma imagem limpa. Ele baixa de novo os pacotes do SwiftPM, do CocoaPods e partes do runtime do Simulador. Depois refaz o DerivedData do zero. Num projeto real, são vários minutos cobrados por job antes de compilar qualquer linha do seu código. Numa máquina dedicada, esses artefatos ficam salvos. O segundo build do dia começa de onde o primeiro parou.
Velocidade, não só dinheiro
O mesmo cache aquecido que elimina minutos cobrados elimina minutos de relógio. Equipes que levam um build hospedado de 12 minutos para um Mac mini dedicado com cache aquecido costumam ver ele terminar em 4 a 6 minutos. Não há fila na frente. É a diferença entre um pull request revisado antes ou depois do almoço.
O que um Mac dedicado não resolve
- Matrizes em paralelo. Uma máquina roda um job por vez. Divida a matriz ou adicione unidades.
- Repositórios públicos. Não rode código de pull requests não confiáveis numa máquina que importa para você. Deixe esses jobs nos runners hospedados.
- Alguém precisa cuidar dele. Atualizações, o serviço do runner, limpezas. É isso que a MacRun faz pelo preço fixo. Num aluguel simples, é trabalho seu.
Faça as suas contas na calculadora, e veja a tabela completa de tarifas na página de preços do GitHub Actions.
Perguntas frequentes
Um Mac dedicado sai sempre mais barato que os runners macOS hospedados pelo GitHub?
+
Não. Abaixo de cerca de 2,242 minutos de macOS por mês, pagar por uso custa menos que uma máquina a $139 fixos. Acima disso, o Mac dedicado é mais barato, e a diferença cresce com o uso.
Por que os runners hospedados cobram mais minutos do que o meu build dura?
+
Porque cada job começa numa imagem limpa. Ele gasta minutos cobrados restaurando dependências e refazendo caches antes de compilar. Uma máquina dedicada aquecida pula esse trabalho em todo job depois do primeiro.
Quanto mais rápido é um Mac mini dedicado que um runner hospedado?
+
Com cache aquecido e sem fila, um build hospedado de 12 minutos costuma terminar em 4 a 6 minutos. O ganho exato depende de quanto do seu build é trabalho de dependências e cache.
Posso usar os dois ao mesmo tempo?
+
Sim, e muitas equipes fazem isso. Rode o build da branch main e a maioria dos pull requests no Mac dedicado. Deixe as matrizes amplas de dispositivos e os jobs de repositórios públicos nos runners hospedados pelo GitHub.