Guia

Migrando do Cirrus Runners para um Mac mini dedicado

O Cirrus Runners não aceita novos clientes e os contratos existentes estão acabando. Leve seus jobs de GitHub Actions para macOS para um Mac mini dedicado, de forma nativa ou com as mesmas imagens Tart.

60 minutos, atualizado em 2026-09-15

Em abril de 2026, a Cirrus Labs anunciou que estava entrando para a OpenAI. O Cirrus CI parou de rodar jobs em 1º de junho de 2026. O Cirrus Runners não aceita novos clientes, e os clientes atuais têm suporte só até o fim do contrato vigente.

Se seus jobs de GitHub Actions para macOS rodam no Cirrus Runners, eles precisam de um novo lugar antes dessa data. Este guia mostra duas formas de levá-los para um Mac mini dedicado e como escolher entre elas.

Duas formas de migrar

Caminho A, um runner nativo. O runner do GitHub Actions roda direto no macOS. É a configuração mais simples, com os builds mais rápidos e caches que continuam aquecidos entre os jobs.

Caminho B, máquinas virtuais Tart. Você roda as mesmas imagens macOS da Cirrus que usa hoje, dentro do Tart, no seu próprio Mac. Cada job começa em uma máquina limpa, exatamente como na Cirrus.

Path A, native runner

macOS, no VMactions.runner service,one job at a timeIts own diskDerivedData and packagesstay warm

Fastest, and you install Xcode yourself.

Path B, Tart virtual machines

macOS host, TartClean VMone job, deletedClean VMone job, deletedThe same Cirrus images you run today.Apple's licence: two at a time, per Mac.

Nothing changes in the workflow except the label.

Um Mac, duas configurações. A escolha é o guia inteiro.
Runner nativoVMs Tart
Tempo de configuraçãoCerca de 30 minutosCerca de uma hora
Mesmo ambiente da CirrusNão, você mesmo instala o XcodeSim, as mesmas imagens
Máquina limpa por jobNoSim
Caches aquecidos entre jobsSimNão, a menos que você os inclua na imagem
Jobs simultâneos por MacUm por runnerAté dois (limite da licença da Apple)

Escolha A se sua equipe é dona do repositório e quer velocidade. Escolha B se você precisa que cada build comece de um estado conhecido e limpo, ou se não quer mudar nada nos seus workflows além do label.

Antes de começar

Liste o que seus workflows usam hoje. Procure as linhas runs-on que apontam para imagens da Cirrus, por exemplo:

.github/workflows
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma

Anote a versão do macOS, as versões do Xcode e tudo o que seus jobs instalam no início. Você vai precisar dessa lista em qualquer um dos caminhos.

Caminho A: runner nativo

Siga o nosso guia “Runner auto-hospedado do GitHub Actions em um Mac mini”, com link no fim desta página. Ele cobre o Xcode, o registro do runner e como rodá-lo como serviço.

Dê ao runner um label que o descreva, como macduty-m4. Depois mude uma linha em cada workflow:

.github/workflows
# before
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma

# after
runs-on: [self-hosted, macOS, ARM64, macduty-m4]

Rode um workflow no novo runner enquanto a Cirrus ainda funciona. Quando ele passar, migre o resto.

Caminho B: as mesmas imagens, no Tart

1. Instale o Tart no Mac

ssh
brew install cirruslabs/cli/tart

2. Baixe uma imagem da Cirrus

Escolha a imagem mais próxima do que você roda hoje. A Cirrus publica imagens com e sem Xcode:

ssh
tart clone ghcr.io/cirruslabs/macos-sequoia-xcode:latest ci-base

O primeiro download é grande, muitas vezes mais de 50 GB, então reserve um tempo.

3. Inicie a VM e faça login

ssh
tart run --no-graphics ci-base &
ssh admin@$(tart ip ci-base)

As imagens da Cirrus vêm com uma conta de administrador padrão. Troque a senha dela antes de fazer qualquer outra coisa.

4. Registre o runner dentro da VM

Dentro da VM, registre um runner do GitHub Actions do mesmo jeito que no Caminho A, com uma diferença: adicione --ephemeral, para que o runner pegue um único job e depois pare.

dentro da VM
./config.sh --url https://github.com/<owner>/<repo> --token <token> --ephemeral --labels tart-sequoia
./run.sh

5. Uma VM nova para cada job

No próprio Mac, um pequeno loop clona uma cópia limpa da imagem, roda um job nela e a apaga:

ssh
while true; do
  tart clone ci-base job
  tart run --no-graphics job &
  # wait for the job to finish, then:
  tart stop job
  tart delete job
done

Na prática, você vai querer um script que também busque um token de registro novo para cada VM. Ferramentas como o Orchard, da mesma equipe, cuidam disso em setups maiores.

A licença da Apple permite no máximo duas máquinas virtuais macOS rodando ao mesmo tempo em um Mac. Para mais jobs em paralelo, adicione outro Mac.

Depois da migração

  • Confira os tempos de build. Em um M4 dedicado ou mais novo, a maioria das equipes vê builds tão rápidos quanto na Cirrus, e mais rápidos com caches aquecidos.
  • Mantenha os workflows antigos por uma semana. Deixe uma cópia das linhas runs-on da Cirrus em uma branch até os novos runners passarem por um release completo.
  • Só repositórios privados. Runners auto-hospedados não devem pegar jobs de forks públicos.

Por que um Mac mini dedicado

  • Um valor fixo por mês. Sem cobrança por minuto e nada para renegociar quando um contrato termina.
  • Todas as gerações. Do M1 ao M6 lado a lado, para você testar nos chips que seus usuários têm.
  • Só seu. Sem fila, sem vizinhos, sem jobs de outras pessoas no seu hardware.
  • Hospedado na UE, sob o RGPD (GDPR).

A MacDuty mantém Mac mini do M1 ao M6 em rack, com o macOS instalado, prontos em minutos. Adicione sua chave SSH pela área do cliente.

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.

A seguir