Guide
Runner GitHub Actions auto-hébergé sur un Mac mini
Mettez en place un runner GitHub Actions auto-hébergé sur un Mac mini dédié. Installez Xcode, enregistrez le runner, lancez-le comme service et gardez des builds rapides et privés.
30 minutes, mis à jour le 2026-09-15
Les runners macOS hébergés par GitHub sont des machines partagées. Ils font la queue aux heures chargées, démarrent à froid à chaque fois et facturent à la minute.
Un runner auto-hébergé sur votre propre Mac mini démarre tout de suite, garde ses caches entre les builds et coûte le même prix chaque mois.
Ce guide prend environ trente minutes. Il vous faut :
- Un Mac mini Apple silicon avec un accès SSH
- Des droits d'administration sur le dépôt ou l'organisation GitHub
- Un identifiant Apple, pour télécharger Xcode
1. Préparer le Mac
Connectez-vous en SSH et empêchez le Mac de se mettre en veille :
sudo pmset -a sleep 0 disksleep 0 displaysleep 0Installez Homebrew :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Nous recommandons un utilisateur dédié au runner, pour que les builds ne tournent jamais sous votre compte administrateur :
sudo sysadminctl -addUser runner -fullName "CI Runner" -password -Connectez-vous avec cet utilisateur pour les étapes suivantes.
2. Installer Xcode
Le plus simple en SSH, c'est `xcodes` :
brew install xcodesorg/made/xcodes
xcodes install --latest
xcodes selectAcceptez la licence et terminez le premier lancement :
sudo xcodebuild -license accept
xcodebuild -runFirstLaunch
xcodebuild -downloadPlatform iOS3. Enregistrer le runner
Dans GitHub, ouvrez votre dépôt, puis Settings, Actions, Runners, New self-hosted runner. Choisissez macOS et ARM64.
GitHub affiche les commandes exactes, avec la version actuelle et un jeton. Elles ressemblent à ceci :
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>Le jeton expire au bout d'une heure, alors enregistrez le runner tout de suite. Quand `config.sh` demande des labels, ajoutez ceux que vous utiliserez dans vos workflows, comme `xcode` ou `m4`.
4. Le lancer comme service
./svc.sh install
./svc.sh start
./svc.sh statusLe runner démarre maintenant avec la session de l'utilisateur. Si vos jobs lancent des tests d'interface ou ont besoin du trousseau de session, activez l'ouverture de session automatique pour l'utilisateur du runner dans Réglages Système, Utilisateurs et groupes. Vous pouvez le faire via le Partage d'écran. L'ouverture de session automatique n'est pas disponible tant que FileVault est activé.
5. L'utiliser dans un 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' buildPoussez un commit. Le job apparaît sous Actions et démarre sur votre Mac en quelques secondes.
6. Le garder en bon état
- Dépôts privés uniquement. Sur un dépôt public, une pull request venant d'un fork peut exécuter du code sur votre Mac. GitHub déconseille les runners auto-hébergés sur les dépôts publics.
- Faites le ménage de temps en temps. DerivedData et les anciens simulateurs grossissent avec le temps :
rm -rf ~/Library/Developer/Xcode/DerivedData
xcrun simctl delete unavailable- Signature. Gardez les certificats dans un trousseau dédié, ou utilisez fastlane match.
- Mises à jour. Le runner se met à jour tout seul par défaut. Mettez Xcode à jour selon votre propre calendrier, pas au milieu d'une release.
Pourquoi un Mac mini dédié
- Personne d'autre dessus. Les builds démarrent dès que vous poussez.
- Caches chauds. DerivedData, les paquets Swift et CocoaPods restent sur le disque, donc les builds incrémentaux sont bien plus rapides.
- De vraies puces. Testez sur le même Apple silicon que vos utilisateurs.
- Un forfait mensuel unique. Pas de facturation à la minute, pas de surprise à la fin d'un sprint chargé.
MacDuty héberge dans ses baies, dans l'UE, des Mac mini du M1 au M6, avec macOS installé. Ajoutez votre clé SSH depuis l'espace client.
En stock aujourd'hui
Ceux-ci sont en baie maintenant. Choisissez-en un, voyez ce qu'il comprend, et créez votre compte seulement au moment de commander.
Vérification des baies
Un Mac mini à vous
Choisissez une configuration. Si elle n'est pas disponible, laissez votre e-mail et nous vous écrivons le jour où elle est en baie.
À l'année : au moins 19 % de moins qu'au mois
À suivre