2026 : Runners macOS hébergés par GitHub vs pool de build Mac cloud dédié – parallélisme, facturation à la minute et cache
Les équipes plateforme se demandent si les minutes macOS GitHub suffisent ou si un pool Mac cloud dédié avec runners self-hosted est indispensable. Ce guide clarifie le problème de CI Git (pas Xcode Cloud), relie facturation, files dattente et espace disque, et fournit un tableau, cinq étapes, des métriques solides et une FAQ.
Points clés
1. Résumé
Les runners macOS hébergés optimisent des minutes sans exploitation lourde ; les pools Mac cloud dédiés optimisent disques, toolchains et politiques de sortie via labels self-hosted. Les deux traitent la CI Git, pas la publication App Store via Xcode Cloud. Augmenter max-parallel ne garantit pas la vitesse : files partagées et tarification pour les hébergés ; contention DerivedData, trousseau et disque pour le self-hosted. Analysez prix à la minute, part file dans p95, cache et espace libre ensemble.
Les habitudes Linux/VPS doivent intégrer archives simultanées sur le même trousseau, Spotlight et dérive de versions Xcode. Les images hébergées sont neuves chaque job ; le self-hosted expose reproductibilité et charge ops. Incluez le temps ingénieur : des minutes bon marché ne compensent pas des files de release si un Mac cloud à loyer prévisible stabilise le p95. La location évite aussi la charge de garder un Mac physique au bureau sous climatisation et alimentation stable.
2. Points de friction
- Facturation : minutes liées aux pics multi-dépôts ; Mac cloud souvent horaire ou mensuel plus trafic.
- Files et parallélisme : planificateur GitHub vs limites CPU/RAM/IO locales.
- DerivedData : FS éphémère vs volumes persistants ; chemins et nettoyage séparés.
- Sécurité : PKCS entreprise, sortie fixe, démons—pools dédiés.
Cinquième axe : observabilité—sans disque/CPU/launchd sur self-hosted, les équipes parlent un langage différent de celui des tableaux GitHub. Standardisez des labels ci-pr / ci-release.
3. Matrice
| Axe | macOS hébergé | Pool Mac cloud |
|---|---|---|
| Coût | À la minute | Loyer + trafic |
| Parallélisme | Quotas org | Labels propres |
| Disque | Caches API | Chemins persistants |
| Toolchain | Rythme plateforme | Plusieurs Xcode |
| Signature | Secrets GitHub | match / clés API alignées PKI |
self-hosted. Documentez branches et concurrency.4. Cinq étapes
- Mesurer p50/p95, attente file, $/minute effective.
- Baseline SSH :
xcodebuild -version, ≥40 Go libres, proxy/DNS, RTT Git. - Séparer DerivedData par label ; rétention nightly vs PR.
concurrencypour releases ; augmenter parallélisme après pics mémoire observés.- Scaler horizontalement si SLA, alertes disque ou seconde région—dupliquer labels, pas seulement concurrency.
5. Métriques
- Disque : dizaines de Go DerivedData ; sous ~10 Go libres, étapes de lien instables.
- RAM : pics Archive 12–18 Go sur Apple Silicon pour borner le parallélisme.
- RTT : séparer attente file et compilation.
- Minutes hébergées : distinguer file gonflée et build lent.
- Taxonomie défaillances : signature, dépendances, OOM, upload.
- ROI cache : gain sur chemin DerivedData fixe.
- Budget parallèle org : pics simultanés multiplient les files.
- Artefacts volumineux :
.xcarchiveconsomment minutes et bande passante.
Pour la finance : CSV GitHub vs rapports self-hosted—les minutes doivent suivre la vélocité des commits, le loyer la charge de base. Commits plats et minutes qui montent : suspectez cache ou files.
6. Ajouter des nœuds
Les seules minutes hébergées heurtent sortie fixe et signature sans présence ; un seul self-hosted souffre du disque et de la contention. Le schéma durable : validations légères hébergées, builds lourds sur Mac cloud dédié, scale-out si SLA ou région. Face aux Mac locaux, la location Mac cloud aligne SSH sur lhabitude VPS ; face aux minutes empilées, le loyer prévoit souvent mieux le budget annuel. Avec Xcode Cloud, rappel : hébergé GitHub et self-hosted Mac traitent la CI Git—clarifiez les branches. Pour une mise en service proche de l'API, suivez l'article VPSMAC sur l'API 90 secondes et l'intégration CI/CD.