Vuncloud Blog
← Retour aux notes de terrain

Optimisation runner GitHub Actions macOS : P95 −57 % + playbook CI iOS

Vue d'ensemble optimisation GitHub Actions macOS / CI iOS · warm P95 14:12 → 6:05 · approfondissements thématiques dans la navigation ci-dessous ·~8 min de lecture

Équipe d'ingénierie analysant l'optimisation performance du runner GitHub Actions macOS auto-hébergé et de la CI iOS
La CI GitHub Actions macOS est-elle lente ?

Si vous avez cherché GitHub Actions macOS slow, iOS CI stuck ou macos-latest queued, vous voyez probablement :

  • 5–10 minutes de file supplémentaires avant le merge (pire en semaine de release)
  • xcodebuild / pod install avec variance folle — même commit, écart 2–3×
  • Sentiment équipe : « la CI ressemble à une loterie — on évite de merger le vendredi après-midi »

👉 Cette page est la vue d'ensemble : résultats du benchmark et chemins de lecture. File, variance de build, cache, ROI et architecture — chacun a son article dédié. Allez directement au sujet qui vous concerne.

Résultats de la comparaison shadow (14 jours)
  • warm build P95 : macos-latest 14:12 → Mac mini M4 dédié 6:05 (−57 %)
  • File : moyenne 4:20 → 0
  • Variance σ : 3:20 → 1:55 (environ −40 %)

Ci-dessous : résumé du benchmark et shadow quick start. YAML cache, modèles de scoring et checklists d'architecture se trouvent dans les articles thématiques liés.

TL;DR · Ingénierie
  • warm P95 14:12 → 6:05 ; σ −40 % ; file éliminée
  • Ordre d'optimisation : file → séparation cold/warm → cache → isolation concurrence → matériel
  • Reproduire : Shadow quick start
TL;DR · Management

Si l'équipe livre 20+ PR/jour et que la file macOS CI est fréquente → lire l'article ROI et remplir le modèle de coût. Sous ~50 builds/mois, macos-latest peut suffire.

TL;DR · Décision

Aller au symptôme : file → Pourquoi macos-latest fait la queue · variance de build → Les builds iOS semblent lents · ROI → Acheter vs louer · données → waterfall + benchmark.

-57%
Temps mural P95
-40%
Écart-type mural (convergence variance)
187
Échantillons PR shadow 14 jours

1. Pourquoi GitHub Actions macOS / CI iOS est lent ?

Les équipes restent bloquées à des endroits différents. Cette page reste au niveau vue d'ensemble — allez au sujet qui correspond à votre symptôme :

Ce que vous cherchez Symptôme typique Lire
macos-latest queued / github actions macos slow PR attend 4–8 min de plus ; pire en semaine de release Pourquoi macos-latest fait la queue
xcodebuild slow / ios ci slow fix Même commit : parfois 4 min, parfois 12 Les builds iOS semblent lents
cocoapods cache / deriveddata cache ci pod install oscille 3–6 minutes Guide cache Pods/SPM/DerivedData
self-hosted runner roi / mac mini ci Acheter ou louer un Mac mini ? Acheter vs louer (ROI)
self-hosted architecture / multi runner Concurrence multi-machines, fallback, labels Architecture auto-hébergée

Si vous voulez seulement « combien plus rapide avec un autre runner ? », restez ici : Benchmark et waterfall.

2. Résultats benchmark : l'apport du Mac mini M4 dédié

Équipe iOS 8 personnes · CocoaPods · 25–40 PR/jour · aucun changement de code app, seul le runner change. Données warm build :

Métriquemacos-latestMac mini M4Changement
P5011:385:22-54%
P9514:126:05-57%
σ3:201:55-40%
max22:408:30-62%
Taux d'échec (14 jours)8.0%3.2%

Résumé environnement : équipe iOS 8 personnes · CocoaPods · 25–40 PR/jour · Xcode 16.2 aligné des deux côtés · Mac mini M4 16 Go + volume données 1 To · shadow dual-run 14 jours sur 187 PR. Séparation cold/warm : article sur la variance de build ; reproduction : Shadow quick start.

Distribution échantillons · self-hosted warm (n=162)
4:00–5:00 |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 52%
5:00–6:00 |■■■■■■■■■■■■■■■■■■ 28%
6:00–7:00 |■■■■■■ 10%
P95 6:05   |■■■■■■■■■■■■■■

3. Cascade temps P95 : 14:12 → 6:05 (−57 %)

Le graphique partageable — d'où viennent 8m 07s d'économies :

Waterfall temps mural P95 (warm build)
macos-latest  P95 ████████████████████████ 14:12
                              │
  File supprimée −4:50  ████████████░░░░░░░░░░░░
  cache/Pods    −1:40  ████░░░░░░░░░░░░░░░░░░░░
  xcodebuild    −1:15  ███░░░░░░░░░░░░░░░░░░░░░
  Sign/upload   −0:20  █░░░░░░░░░░░░░░░░░░░░░░░
                              ▼
self-hosted   P95 ██████████ 6:05  (−57%)

La file seule ≈ −4:50sujet file. Cache ≈ −1:40guide cache.

4. Choisir l'article adapté à votre problème

Ces sujets suivent un ordre de dépannage typique — commencez par ce qui fait le plus mal :

Ordre de lecture suggéré
Problème de file ?
  → Pourquoi macos-latest fait la queue (en préparation)
  → Cette page : benchmark + waterfall

Temps de build très variables ?
  → Les builds iOS semblent lents (publié)
  → Guide cache Pods/SPM/DerivedData (publié)

Acheter ou louer ?
  → Données shadow sur cette page
  → Acheter vs louer ROI (en préparation)
  → Forfaits Mac cloud / FAQ CI/CD

Setup multi-runner ou fallback ?
  → Architecture auto-hébergée (en préparation)

5. Navigation thématique

Chaque article couvre un problème concret. Cette page regroupe la vue d'ensemble du benchmark et les liens.

Sujet Idéal pour Statut
Pourquoi macos-latest fait la queue PR bloquées en file d'attente En préparation
Les builds iOS semblent lents Même commit, écart de temps 2–3× Publié
Accélérer la CI iOS : cache Pods/SPM/DerivedData Copier le YAML, ajuster les clés cache Publié
Un runner auto-hébergé vaut-il le coup ? Calcul acheter vs louer un Mac cloud En préparation
Architecture Mac mini auto-hébergé Multi-runner, labels, fallback En préparation

Articles connexes publiés : Primer CI Mac mini M4 · ROI heures d'ingénierie · FAQ CI/CD

6. Shadow benchmark quick start

Étapes minimales de reproduction ci-dessous. Workflow complet et checklist de déploiement : sujet architecture ; YAML cache : guide cache.

  1. Copier ios-ci.ymlios-ci-shadow.yml ; ajouter un job avec runs-on: [self-hosted, macos-m4-ios]
  2. Dual-run chaque PR contre macos-latest avec le même commit SHA pendant 7–14 jours
  3. Enregistrer P50/P95 mural et temps de file ; calculer warm build P95 séparément (définition dans l'article sur la variance de build)
  4. Comparer taux d'échec, puis lire acheter vs louer ROI
Déclencheur shadow (extrait)
on:
  pull_request:
    branches: [main, release/*]
jobs:
  ios-hosted:
    runs-on: macos-latest
  ios-shadow:
    runs-on: [self-hosted, macos-m4-ios]
    # same steps · same SHA

7. FAQ

Combien un runner GitHub Actions macOS auto-hébergé peut-il être plus rapide que macos-latest ?

Ce run : warm build P95 −57 % (14:12→6:05), σ −40 %. Voir Benchmark ; reproduire via Shadow quick start.

Pourquoi les runners GitHub Actions macOS font-ils la queue ?

Pool hébergé partagé + forte concurrence en semaine de release. Le temps de file n'est pas facturé mais compte au temps mural. Détail complet → sujet file.

Les runners auto-hébergés sont-ils moins stables ?

Dépend de l'ops : seuils disque, supervision runner, matériel de signature. Comparez les taux d'échec en shadow ; ici taux 14 jours 8,0 % → 3,2 %. Garder macos-latest en fallback réduit le risque perçu.

Un Mac mini vaut-il le coup comme runner CI ?

À évaluer à 20+ PR/jour avec file qui empire. Sous ~50 builds/mois, l'hébergé peut suffire. Modèle de scoring et TCO → acheter vs louer ROI.

Quelles sont les limites de GitHub macos-latest ?

File partagée, workspaces éphémères, cache instable entre jobs, contention I/O concurrente. Impossible de fixer DerivedData ou d'éliminer la file.

Comment optimiser le P95 de la CI iOS ?

File → cold/warm → cache → concurrence → matériel. Pas à pas : file · variance de build · guide cache.

Comment optimiser le cache CocoaPods ?

YAML complet et design des clés → guide cache.

Combien de temps prend la migration ?

1–2 jours préparation + shadow 7–14 jours + bascule progressive 3–5 jours. Commencer shadow avec tests seulement, importer la signature ensuite.

8. Conclusion

Après le passage aux runners auto-hébergés, le warm P95 est passé de 14:12 à 6:05 avec une variance bien plus serrée. Cette page montre le benchmark et le waterfall ; file, variance de build, cache, ROI et architecture ont chacun un article dédié. Lancez un shadow dual-run avec vos propres données avant de vous engager sur du matériel dédié.

Valider le ROI, puis commander

Parcours recommandé : Shadow dual-runacheter vs louer ROILouer Mac mini M4. Vuncloud propose des nœuds M4 dédiés (Xcode préinstallé, volume données 1 To, guide setup runner).

FAQ onboarding CI/CD · Forfaits et tarifs · Louer Mac mini M4

Notes datacenter · CI iOS

De la douleur file à la décision ROI

Benchmark · waterfall · navigation thématique

Navigation thématique
Offre limitée Voir les forfaits