O Que É um macOS Runner? CI para Plataformas Apple, e Por Que Custa
Um macOS runner é um runner de CI executando macOS, necessário para compilar e testar software de iOS, iPadOS e outras plataformas Apple, porque o Xcode só roda em hardware Apple.
Se você entrega para plataformas Apple, precisa de macOS runners - o Xcode e a toolchain da Apple não rodam em nenhum outro lugar. Eles também são os runners mais caros em CI, por razões enraizadas no licenciamento da Apple.
Por que macOS runners existem
Compilar e assinar apps de iOS ou macOS exige o Xcode, que só roda em macOS em hardware Apple. Portanto, CI para plataformas Apple precisa rodar em máquinas Mac genuínas, diferente do Linux, que virtualiza livremente.
Por que são caros
O licenciamento da Apple exige que o macOS rode em hardware Apple, que é comparativamente escasso e caro de operar em um data center. Como resultado, os minutos hospedados de macOS normalmente custam um grande múltiplo dos minutos de Linux.
Restrições comuns
- Concorrência limitada: a capacidade de macOS é mais escassa que a de Linux.
- Provisionamento mais lento: runners Mac muitas vezes têm cold-start mais lento.
- Fixação de versão: você precisa combinar a versão certa de Xcode e macOS.
Mantendo o CI de macOS acessível
Como os minutos de macOS são os mais caros, é neles que cache, right-sizing e evitar re-runs desperdiçados mais compensam. A autocorreção que evita re-runs de builds instáveis é especialmente valiosa no tempo caro de macOS.
Separando trabalho Apple do multiplataforma
Mantenha nos macOS runners apenas as etapas genuinamente dependentes de Apple - build do Xcode, assinatura, testes de simulador - e rode testes multiplataforma e tooling em Linux barato. Isso mantém os caros minutos de macOS focados no trabalho que só um Mac pode fazer.
Principais conclusões
- Um macOS runner executa macOS, necessário para builds de iOS e plataformas Apple.
- O Xcode só roda em hardware Apple, então CI de Mac não pode ser virtualizado livremente.
- Os minutos de macOS custam um grande múltiplo dos minutos de Linux.
- Cache e evitar re-runs importam mais no tempo caro de macOS.