Guia
Runner auto-hospedado do GitHub Actions em um Mac mini
Configure um runner auto-hospedado do GitHub Actions em um Mac mini dedicado. Instale o Xcode, registre o runner, rode como serviço e mantenha os builds rápidos e privados.
30 minutos, atualizado em 2026-09-15
Os runners macOS hospedados pelo GitHub são máquinas compartilhadas. Eles formam fila nos horários de pico, começam do zero toda vez e cobram por minuto.
Um runner auto-hospedado no seu próprio Mac mini começa na hora, mantém os caches entre os builds e custa o mesmo todo mês.
Este guia leva cerca de trinta minutos. Você precisa de:
- Um Mac mini com Apple silicon e acesso SSH
- Direitos de administrador no repositório ou na organização do GitHub
- Um Apple ID, para baixar o Xcode
1. Prepare o Mac
Faça login via SSH e impeça que o Mac entre em repouso:
sudo pmset -a sleep 0 disksleep 0 displaysleep 0Instale o Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Recomendamos um usuário separado para o runner, para que os builds nunca rodem na sua conta de administrador:
sudo sysadminctl -addUser runner -fullName "CI Runner" -password -Faça login com esse usuário para os passos abaixo.
2. Instale o Xcode
O jeito mais simples via SSH é o `xcodes`:
brew install xcodesorg/made/xcodes
xcodes install --latest
xcodes selectAceite a licença e conclua a primeira inicialização:
sudo xcodebuild -license accept
xcodebuild -runFirstLaunch
xcodebuild -downloadPlatform iOS3. Registre o runner
No GitHub, abra o seu repositório e vá em Settings, Actions, Runners, New self-hosted runner. Escolha macOS e ARM64.
O GitHub mostra os comandos exatos, com a versão atual e um token. Eles são parecidos com estes:
mkdir actions-runner && cd actions-runner
curl -o actions-runner-osx-arm64.tar.gz -L <download URL from GitHub>
tar xzf ./actions-runner-osx-arm64.tar.gz
./config.sh --url https://github.com/<owner>/<repo> --token <token>O token expira depois de uma hora, então registre logo. Quando o `config.sh` pedir labels, adicione as que você vai usar nos workflows, como `xcode` ou `m4`.
4. Rode como serviço
./svc.sh install
./svc.sh start
./svc.sh statusAgora o runner inicia junto com a sessão do usuário. Se os seus jobs rodam testes de UI ou precisam do chaveiro de login, ative o login automático para o usuário do runner em Ajustes do Sistema, Usuários e Grupos. Você pode fazer isso pelo Compartilhamento de Tela. O login automático não fica disponível enquanto o FileVault estiver ativado.
5. Use em um workflow
name: iOS build
on: [push]
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
steps:
- uses: actions/checkout@v4
- name: Build
run: xcodebuild -scheme MyApp -destination 'generic/platform=iOS Simulator' buildFaça push de um commit. O job aparece em Actions e começa no seu Mac em segundos.
6. Mantenha tudo saudável
- Só repositórios privados. Em um repositório público, um pull request vindo de um fork pode executar código no seu Mac. O GitHub desaconselha runners auto-hospedados em repositórios públicos.
- Faça limpeza de vez em quando. DerivedData e simuladores antigos crescem com o tempo:
rm -rf ~/Library/Developer/Xcode/DerivedData
xcrun simctl delete unavailable- Assinatura. Guarde os certificados em um chaveiro dedicado, ou use o fastlane match.
- Atualizações. O runner se atualiza sozinho por padrão. Atualize o Xcode no seu próprio ritmo, não no meio de um release.
Por que um Mac mini dedicado
- Ninguém mais nele. Os builds começam no momento do push.
- Caches quentes. DerivedData, pacotes Swift e CocoaPods ficam no disco, então os builds incrementais são muito mais rápidos.
- Chips de verdade. Teste no mesmo Apple silicon que os seus usuários têm.
- Um valor fixo por mês. Sem cobrança por minuto, sem surpresa no final de uma sprint corrida.
A MacDuty hospeda em racks Mac mini do M1 ao M6 na UE, com o macOS instalado. 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
A seguir