Wer nach GitHub Actions macOS slow, iOS CI stuck oder macos-latest queued sucht, sieht typischerweise:
- 5–10 zusätzliche Minuten Queue vor dem Merge (schlimmer in Release-Wochen)
xcodebuild/pod installmit wilder Varianz — gleicher Commit, 2–3× Spread- Team-Stimmung: „CI fühlt sich wie Lotterie an — Freitagnachmittag mergen wir nicht“
👉 Diese Seite ist der Überblick: Benchmark-Ergebnisse und Lesepfade. Queue, Build-Varianz, Cache, ROI und Architektur — jeweils ein eigener Artikel. Springen Sie zum passenden Thema.
- warm build P95:
macos-latest14:12 → dedizierter Mac mini M4 6:05 (−57 %) - Queue: Durchschnitt 4:20 → 0
- Varianz σ: 3:20 → 1:55 (ca. −40 %)
Im Folgenden: Benchmark-Zusammenfassung und Shadow Quick Start. Cache-YAML, Bewertungsmodelle und Architektur-Checklisten finden Sie in den verlinkten Themenartikeln.
- warm P95 14:12 → 6:05; σ −40 %; Queue eliminiert
- Optimierungsreihenfolge: Queue → cold/warm trennen → Cache → Concurrency-Isolation → Hardware
- Reproduzieren: Shadow Quick Start
Bei 20+ PRs/Tag und häufiger macOS-CI-Queue → ROI-Artikel lesen und Kostenmodell ausfüllen. Unter ~50 Builds/Monat kann macos-latest reichen.
Nach Symptom springen: Queue → Warum macos-latest in der Queue hängt · Build-Varianz → iOS-CI-Builds fühlen sich langsam an · ROI → Kaufen vs. mieten · Daten → Wasserfall + Benchmark.
1. Warum ist GitHub Actions macOS / iOS CI langsam?
Teams bleiben an unterschiedlichen Stellen hängen. Diese Seite bleibt auf Überblicksniveau — springen Sie zum Thema, das zu Ihrem Symptom passt:
| Was Sie suchen | Typisches Symptom | Lesen |
|---|---|---|
| macos-latest queued / github actions macos slow | PR wartet 4–8 Extra-Minuten; schlimmer in Release-Wochen | Warum macos-latest in der Queue hängt |
| xcodebuild slow / ios ci slow fix | Gleicher Commit: mal 4 Min., mal 12 | iOS-CI-Builds fühlen sich langsam an |
| cocoapods cache / deriveddata cache ci | pod install schwankt 3–6 Minuten |
Pods/SPM/DerivedData-Cache-Leitfaden |
| self-hosted runner roi / mac mini ci | Mac mini kaufen oder mieten? | Kaufen vs. mieten (ROI) |
| self-hosted architecture / multi runner | Multi-Maschinen-Concurrency, Fallback, Labels | Self-hosted-Architektur |
Wer nur „wie viel schneller ist ein anderer Runner?“ wissen will, bleibt hier: Benchmark und Wasserfall.
2. Benchmark-Ergebnisse: wie viel Self-hosted Mac mini M4 hilft
8-köpfiges iOS-Team · CocoaPods · 25–40 PRs/Tag · keine App-Code-Änderungen, nur Runner-Tausch. warm build Headline-Daten:
| Metrik | macos-latest | Mac mini M4 | Änderung |
|---|---|---|---|
| P50 | 11:38 | 5:22 | -54% |
| P95 | 14:12 | 6:05 | -57% |
| σ | 3:20 | 1:55 | -40% |
| max | 22:40 | 8:30 | -62% |
| Fehlerrate (14 Tage) | 8.0% | 3.2% | — |
Umgebungszusammenfassung: 8-köpfiges iOS-Team · CocoaPods · 25–40 PRs/Tag · Xcode 16.2 auf beiden Seiten · Mac mini M4 16 GB + 1 TB Datenvolume · 14-Tage-187-PR-Shadow-Dual-Run. cold/warm-Split: Artikel zur Build-Varianz; Reproduktion: Shadow Quick Start.
4:00–5:00 |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 52% 5:00–6:00 |■■■■■■■■■■■■■■■■■■ 28% 6:00–7:00 |■■■■■■ 10% P95 6:05 |■■■■■■■■■■■■■■
3. P95-Zeit-Wasserfall: 14:12 → 6:05 (−57 %)
Das teilbare Kern-Diagramm — woher 8m 07s Einsparung kommen:
macos-latest P95 ████████████████████████ 14:12
│
Queue entfernt −4:50 ████████████░░░░░░░░░░░░
cache/Pods −1:40 ████░░░░░░░░░░░░░░░░░░░░
xcodebuild −1:15 ███░░░░░░░░░░░░░░░░░░░░░
Sign/upload −0:20 █░░░░░░░░░░░░░░░░░░░░░░░
▼
self-hosted P95 ██████████ 6:05 (−57%)
Queue allein ≈ −4:50 → Queue-Thema. Cache ≈ −1:40 → Cache-Leitfaden.
4. Passenden Artikel für Ihr Problem finden
Diese Themen folgen einer typischen Fehlerbehebungsreihenfolge — beginnen Sie mit dem, was am meisten weh tut:
Queue-Probleme? → Warum macos-latest in der Queue hängt (in Vorbereitung) → Diese Seite: Benchmark + Wasserfall Build-Zeiten schwanken stark? → iOS-CI-Builds fühlen sich langsam an (veröffentlicht) → Pods/SPM/DerivedData-Cache-Leitfaden (veröffentlicht) Kaufen oder mieten? → Shadow-Daten auf dieser Seite → Kaufen vs. mieten ROI (in Vorbereitung) → Cloud-Mac-Tarife / CI/CD FAQ Multi-Runner-Setup oder Fallback? → Self-hosted-Architektur (in Vorbereitung)
5. Themen-Navigation
Jeder Artikel behandelt ein konkretes Problem. Diese Seite bündelt den Benchmark-Überblick und die Verlinkung.
| Thema | Am besten für | Status |
|---|---|---|
| Warum macos-latest in der Queue hängt | PRs warten in der Queue | In Vorbereitung |
| iOS-CI-Builds fühlen sich langsam an | Gleicher Commit, 2–3× Build-Zeit-Spread | Veröffentlicht |
| iOS-CI beschleunigen: Pods/SPM/DerivedData-Cache | YAML kopieren, Cache-Keys tunen | Veröffentlicht |
| Lohnt sich ein Self-hosted Runner? | Kaufen vs. Cloud-Mac mieten | In Vorbereitung |
| Self-hosted Mac mini Architektur | Multi-Runner, Labels, Fallback | In Vorbereitung |
Verwandte veröffentlichte Artikel: Mac mini M4 CI-Primer · Engineering-Hours-ROI · CI/CD FAQ
6. Shadow-Benchmark Quick Start
Minimale Reproduktionsschritte unten. Vollständiger Workflow und Rollout-Checkliste: Architektur-Thema; Cache-YAML: Cache-Leitfaden.
ios-ci.yml→ios-ci-shadow.ymlkopieren; Job mitruns-on: [self-hosted, macos-m4-ios]hinzufügen- Jeden PR 7–14 Tage gegen
macos-latestmit gleichem Commit-SHA dual laufen lassen - Wandzeit P50/P95 und Queue-Zeit erfassen; warm build P95 separat berechnen (Definition im Artikel zur Build-Varianz)
- Fehlerraten vergleichen, dann Kaufen vs. mieten ROI lesen
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
Wie viel schneller kann ein GitHub Actions macOS Self-hosted Runner sein als macos-latest?
In diesem Lauf: warm build P95 −57 % (14:12→6:05), σ −40 %. Siehe Benchmark; reproduzieren via Shadow Quick Start.
Warum warten GitHub Actions macOS Runner in der Queue?
Gemeinsamer Hosted-Pool + hohe Concurrency in Release-Wochen. Queue-Zeit wird nicht abgerechnet, zählt aber zur Wandzeit. Vollständige Aufschlüsselung → Queue-Thema.
Sind Self-hosted Runner weniger stabil?
Hängt vom Betrieb ab: Disk-Wasserstände, Runner-Überwachung, Signing-Material. Fehlerraten im Shadow vergleichen; hier 14-Tage-Fehlerrate 8,0 % → 3,2 %. macos-latest als Fallback reduziert wahrgenommenes Risiko.
Lohnt sich ein Mac mini als CI-Runner?
Bewertung lohnt bei 20+ PRs/Tag mit verschlechternder Queue. Unter ~50 Builds/Monat kann Hosted reichen. Scoring-Modell und TCO → Kaufen vs. mieten ROI.
Welche Grenzen hat GitHub macos-latest?
Gemeinsame Queue, kurzlebige Workspaces, instabiler Cache über Jobs, parallele I/O-Konkurrenz. DerivedData lässt sich nicht pinnen, Queue nicht eliminieren.
Wie optimiert man iOS-CI-P95?
Queue → cold/warm → Cache → Concurrency → Hardware. Schritt für Schritt: Queue · Build-Varianz · Cache-Leitfaden.
Wie optimiert man CocoaPods-Cache?
Vollständiges YAML und Key-Design → Cache-Leitfaden.
Wie lange dauert die Migration?
1–2 Tage Vorbereitung + Shadow 7–14 Tage + schrittweiser Rollout 3–5 Tage. Shadow zuerst nur mit Tests, Signing später importieren.
8. Fazit
Nach dem Wechsel zu Self-hosted Runnern sank warm P95 von 14:12 auf 6:05 bei deutlich geringerer Varianz. Diese Seite zeigt Benchmark und Wasserfall; Queue, Build-Varianz, Cache, ROI und Architektur haben jeweils einen eigenen Artikel. Führen Sie einen Shadow-Dual-Run mit Ihren eigenen Daten durch, bevor Sie sich für dedizierte Hardware entscheiden.
ROI bestätigen, dann bestellen
Empfohlener Pfad: Shadow Dual-Run → Kaufen vs. mieten ROI → Mac mini M4 mieten. Vuncloud bietet dedizierte M4-Knoten (Xcode vorinstalliert, 1 TB Datenvolume, Runner-Setup-Guide).
CI/CD Onboarding FAQ · Pläne und Preise · Mac mini M4 mieten