Runner macOS self-hosted GitHub Actions sur Mac mini M4 cloud (guide 2026)
Les runners macos-latest hébergés par GitHub sont pratiques, mais les équipes iOS butent sur des caches froids, des files d’attente en semaine de release ou des outils internes impossibles à placer sur des runners éphémères. Un runner self-hosted sur un Mac Apple Silicon loué offre un DerivedData persistant, des perfs prévisibles et le choix de région — HK, JP, KR, SG ou US près de vos développeurs. Comparez d’abord le coût dans location ou achat Mac mini M4, puis reliez Actions à du matériel joignable en SSH.
Quand un runner macOS self-hosted est le bon outil en 2026
- Longues pipelines
xcodebuild— caches chauds = minutes gagnées à chaque run. - SDK ou frameworks internes que vous ne pouvez pas charger sur runners jetables.
- Conformité — les jobs restent sur un Mac que vous contrôlez contractuellement.
- Trains de release parallèles — runners et trousseaux séparés par app.
Checklist sécurité avant ./config.sh
| Contrôle | Recommandation |
|---|---|
| Surface SSH | Auth par clé uniquement, port non standard, liste blanche d’IP si possible. |
| Utilisateur runner | Compte d’automatisation non admin ; sudo minimal. |
| Secrets | GitHub Environments + validateurs obligatoires pour les jobs de déploiement prod. |
| Espaces de travail | Purger _work sur les dépôts sensibles ou répertoires jetables par job. |
Déroulé sur les nœuds MacXCode
- SSH — port et utilisateur du mail de location ; vérifier Xcode CLT ou Xcode complet.
- Dossier —
mkdir ~/actions-runner && cd ~/actions-runner. - Télécharger — URL du tarball macOS arm64 depuis « Add runner » (Settings → Actions → Runners).
- Configurer —
./config.sh --url https://github.com/ORG/REPO --token RUNNER_TOKENavec jeton court. - Labels — ex.
macxcode-m4,ap-sg,xcode16pour cibler le bon pool. - Service —
./svc.sh installpuis./svc.sh startpour survivre au reboot.
Étapes GUI (premier trousseau) : une session VNC, puis retour aux jobs headless — comme dans SSH vs VNC sur Mac cloud.
Extrait de workflow
runs-on: [self-hosted, macxcode-m4]
Épinglez Xcode via DEVELOPER_DIR ou xcode-select dans une étape d’installation. Gardez les éléments de signature dans le trousseau de session du runner et utilisez security set-key-partition-list pour la CI. Pour Archive : guide compilation distante iOS.
GitHub-hébergé vs self-hosted sur M4 loué
| Sujet | Hébergé GitHub | Self-hosted Mac cloud |
|---|---|---|
| Mise en place | Zéro infra | Installation runner unique |
| Cache | Démarrages à froid | Disque persistant |
| Région | Limitée | Nœuds HK/JP/KR/SG/US |
| Sécurité | Gérée par GitHub | Vous durcissez SSH + OS |
FAQ
| Question | Réponse |
|---|---|
| Un runner pour plusieurs dépôts ? | Oui au niveau org, mais isolez les secrets ; machines séparées prod / expérimentation. |
| GitLab ou Jenkins ? | Même logique ; l’histoire matérielle (M4 nu + SSH) reste ; changez l’installeur d’agent. |
| Schémas réseau ? | Voir l’aide MacXCode pour des exemples SSH/VNC. |
Pourquoi Mac mini M4 comme hôte GitHub Actions
Les runners passent des heures à compiler Swift ; les cœurs performance M4 et le NVMe rapide gardent la latence de file plate. Contrairement à des VM surdimensionnées, le Mac mini consomme peu au repos — utile quand les workflows s’arrêtent la nuit mais le runner doit rester en ligne. MacXCode fournit de l’Apple Silicon physique avec SSH et VNC optionnel sur plusieurs régions, aligné sur les labels GitHub habituels.
Provisionnez un nœud via les tarifs, finalisez la checklist, enregistrez le runner et lancez un premier workflow_dispatch — la différence se voit dès le second build.
GitHub Actions sur M4 dédié
Bare metal · Nœuds mondiaux · SSH en quelques minutes