Guia

Runners macOS auto-hospedados para GitHub Actions

Um runner macOS auto-hospedado é um Mac que você controla. Ele executa os seus jobs do GitHub Actions no lugar das máquinas compartilhadas do GitHub. Você registra o runner uma vez e aponta o seu workflow para ele. Os seus builds rodam num hardware que continua aquecido entre um job e outro.

Por que as equipes deixam os runners macOS hospedados

O GitHub cobra os runners macOS a cerca de $0.062 a $0.102 por minuto. Isso é umas dez vezes o preço do Linux. Esse preço serve para builds ocasionais, mas sai caro para uma equipe que publica todo dia. Quando a máquina é sua, três coisas mudam:

  • O custo para de crescer com o uso. Uma máquina com mensalidade fixa custa o mesmo com 1.000 ou com 20.000 minutos.
  • Os caches continuam lá. Os caches de DerivedData, CocoaPods, SwiftPM e npm ficam no SSD local. Assim os builds incrementais pulam quase todo o trabalho que um runner novo repete.
  • O ambiente é estável. Você fixa o Xcode uma vez. Não precisa se adaptar às atualizações de imagem no ritmo de outra pessoa.

As desvantagens, sem rodeios

Ter um runner auto-hospedado também tem pontos fracos. Os jobs rodam um depois do outro numa só máquina, então matrizes grandes em paralelo precisam de mais unidades. Se você compila pull requests de terceiros, a segurança do runner é responsabilidade sua. Por isso o GitHub recomenda runners auto-hospedados para repositórios privados. E alguém precisa cuidar das atualizações do macOS, das instalações do Xcode e de manter o serviço do runner no ar.

A MacRun existe para tirar essa última parte das suas mãos. Você fica com a máquina dedicada e o preço fixo. Nós cuidamos do provisionamento, da supervisão e das limpezas.

Como fica a mudança no workflow

Registrar o runner é um comando que você roda uma vez. Depois disso, a mudança no pipeline é de duas linhas:

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

Todo o resto continua igual, incluindo os seus steps, secrets e artifacts. O passo a passo completo está no guia de configuração.

Montar você mesmo ou alugar

Se você já tem hardware da Apple sobrando e alguém para cuidar dele, rodar o runner no seu próprio Mac é uma opção razoável. Se prefere não comprar hardware, instalar e ficar vigiando o serviço do runner, uma máquina dedicada alugada traz a mesma conta sem o trabalho de operação. Faça as suas contas na calculadora de custos.

Perguntas frequentes

O que é um runner macOS auto-hospedado?

+

É um Mac que você controla e que roda os seus jobs do GitHub Actions no lugar das máquinas compartilhadas do GitHub. Você instala o agente do runner do Actions e registra ele no seu repositório ou organização. Depois escolhe ele no workflow com um rótulo runs-on.

Um runner macOS auto-hospedado sai mais barato que o hospedado pelo GitHub?

+

Depende do volume. O macOS hospedado pelo GitHub custa cerca de $0.062 a $0.102 por minuto. Um runner dedicado a $139 fixos por mês se paga perto de 2,242 minutos por mês na tarifa mais baixa. Tudo o que passar disso sai de graça.

Runners auto-hospedados são seguros em repositórios públicos?

+

O GitHub recomenda runners auto-hospedados para repositórios privados. Senão, o pull request de um fork pode rodar código não confiável na sua máquina. Se você precisar usar em repositórios públicos, exija aprovação para workflows de forks. E isole o runner de tudo o que importa para você.

Preciso manter o serviço do runner rodando?

+

Sim, o runner precisa estar online para pegar jobs. Na MacRun, um daemon de supervisão vigia o serviço. Se ele cair, o daemon reinicia em cerca de 30 segundos, então você não precisa monitorar.

Guias relacionados