Guia

Como manter uma farm de CI para Mac em Mac mini dedicados

Como equipes rodam de 5 a 20 Mac mini dedicados como farm de CI: runners por projeto, uma conta, uma fatura, engenheiros que respondem.

Atualizado em 2026-09-20

Um Mac mini dá conta tranquilamente dos builds iOS de uma equipe. A partir do momento em que você tem três apps, duas branches fazendo build em paralelo e um release train, você precisa de uma farm, e a forma como você a estrutura decide se o CI continua rápido ou vira aquilo de que todo mundo reclama.

Veja como as equipes rodam de 5 a 20 Macs dedicados na MacDuty.

Comece pela concorrência de builds, não pelo tamanho da equipe

O único número que importa é quantos builds precisam rodar ao mesmo tempo no seu horário de pico. Não desenvolvedores, não repositórios: builds simultâneos.

Uma estimativa aproximada que vale para a maioria das equipes iOS:

SituaçãoMáquinas
Um app, uma equipe, builds de PR1 a 2
Dois ou três apps, PR em paralelo e nightly3 a 5
Release train, testes de UI em uma matriz de dispositivos6 a 10
Agência ou equipe de plataforma atendendo muitos produtos10 a 20 ou mais

O tempo de fila é o sinal. Se os builds esperam mais do que alguns minutos no pico, adicione uma máquina. Sai mais barato do que a hora que cada desenvolvedor passa esperando.

Um runner por máquina, ou vários?

Cada Mac mini é a máquina inteira só para você: sem hypervisor, sem vizinho barulhento. Isso permite dois padrões válidos.

Um runner por máquina

O mais limpo. Um build fica com toda a CPU, a GPU e a memória. Use para builds do Xcode e testes de UI, em que um build consome sem problema todos os núcleos que você der a ele.

Dois ou três runners por máquina

Funciona quando seus jobs são pequenos e limitados por I/O: testes unitários, lint, empacotamento. Em um M4 ou M6 de 32 GB, dois jobs leves em paralelo rodam com folga.

Misturar os dois é normal: máquinas pesadas dedicadas a builds de release, máquinas mais leves cheias de jobs rápidos.

Dividindo a farm entre equipes e projetos

Coloque labels nas suas máquinas e deixe o pipeline direcionar os jobs para elas. As divisões úteis:

Por projeto

ios-app, sdk, internal-tools. Cada repositório aponta para o próprio label, então um build quebrado em um produto nunca bloqueia outro.

Por finalidade

máquinas pr, rápidas e sempre aquecidas, e máquinas release, apagadas antes de cada build assinado.

Por cliente

Agências dão a cada cliente as próprias máquinas, com as próprias credenciais e certificados. Nada compartilhado, nada para vazar entre contas.

Tudo isso em uma só conta MacDuty, com uma fatura no fim do mês.

Mantendo a farm saudável

Reinstale entre projetos, em vez de nunca

Um Mac que faz builds há um ano acumula versões do Xcode, simuladores e caches. Quando você passar uma máquina para um novo projeto, peça ao suporte uma reinstalação limpa. Só fazemos com a sua autorização, já que isso apaga o Mac.

Fixe sua toolchain

A mesma versão do Xcode em todas as máquinas de um pool, atualizada de propósito. Uma farm em que as máquinas vão divergindo produz builds que passam em um runner e falham em outro.

Observe a fila, não a CPU

Gráficos de CPU em máquinas de build sempre assustam e raramente indicam o que fazer. O tempo de espera na fila diz quando adicionar hardware.

Tenha uma reserva

Com dez máquinas, uma fora do ar deve ser um incômodo, não um incidente.

Como isso se compara a nuvens de Mac orquestradas

Plataformas de orquestração colocam um agendamento no estilo Kubernetes por cima de macOS virtualizado, e você paga por essa camada. Ela é realmente útil se você precisa de VMs efêmeras criadas por job em grande escala.

A maioria das equipes com menos de vinte máquinas não precisa. Elas precisam de alguns Macs rápidos e dedicados que fiquem no ar, mantenham os caches aquecidos e custem o mesmo valor todo mês. É isso que uma farm dedicada é: máquinas físicas inteiras a preço fixo, com o cache de build ainda lá para o próximo job, em vez de ser jogado fora junto com a VM.

Você também tem a diferença que aparece às 2 da manhã antes de um release: quem cuida dos racks responde o e-mail.

Como montar uma farm

Diga como ela deve ser: quantas máquinas, quais modelos, o que precisa estar instalado. Sob pedido, configuramos as máquinas com a sua versão do Xcode, o agente do runner, chaves e certificados, e cuidamos das reinstalações e das mudanças na frota conforme você precisar, cada uma com a sua autorização.

Em estoque hoje

Estes estão no rack agora. Escolha um, veja o que vem com ele e crie sua conta só quando fizer o pedido.

Verificando os racks

Seu próprio Mac mini

Escolha uma configuração. Quando uma não estiver disponível, deixe seu e-mail e escrevemos no dia em que ela for para o rack.

Anual: pelo menos 19% menos do que pagar por mês

  • 16GB

    Memória unificada, 120 GB/s

    Núcleos
    10 CPU, 10 GPU
    Armazenamento
    Disponível
    Em estoque
  • O mais escolhido
    24GB

    Memória unificada, 120 GB/s

    Núcleos
    10 CPU, 10 GPU
    Armazenamento
    Disponível
    Em estoque
  • 32GB

    Memória unificada, 120 GB/s

    Núcleos
    10 CPU, 10 GPU
    Armazenamento
    Disponível
    Em estoque
Visa Mastercard Transferência SEPAPreços em EUR, IVA adicionado no pagamento quando se aplica. Mínimo de um mês, depois cancele em qualquer mês.

Perguntas

Posso ter vários Mac mini em uma só conta MacDuty?
Sim. Uma conta comporta quantas máquinas você precisar, com uma fatura, para você ou para cada uma das suas empresas.
Quantos Mac mini eu preciso para CI de iOS?
Dimensione pelos builds simultâneos no pico, não pelo tamanho da equipe. Uma a duas máquinas para um único app, três a cinco para alguns apps com builds em paralelo, seis a vinte para um release train ou uma agência.
Posso rodar vários runners de CI em um Mac mini?
Sim. A máquina é inteiramente sua. Um runner por máquina para builds pesados do Xcode; dois ou três para jobs leves, limitados por I/O, em uma máquina de 32 GB.
Equipes ou clientes diferentes podem ter máquinas separadas?
Sim. As máquinas recebem labels e ficam separadas por projeto ou por cliente, com as próprias credenciais, em uma única conta e fatura.
Uma farm de Mac dedicada sai mais barata do que uma nuvem de Mac orquestrada?
Para carga de CI constante, sim: um preço mensal fixo por máquina física, sem cobrança por hora e sem camada de orquestração para pagar.

A seguir