若你搜的是「GitHub Actions macOS 慢」「iOS CI 卡住」「macos-latest queued」,常見症狀是:
- PR 合併前多等 5–10 分鐘排隊(發版週更久)
xcodebuild/pod install波動巨大,同 commit 差 2–3 倍- 工程師體感:「CI 像抽獎,不敢在週五下午 merge」
👉 本文是總覽:Benchmark 結果與閱讀路徑。佇列、建置慢、快取、ROI、架構——各有一篇專題文展開,按需跳轉即可。
- warm build P95:
macos-latest14:12 → 獨享 Mac mini M4 6:05(-57%) - 排隊:平均 4:20 → 0
- 變異數 σ:3:20 → 1:55(約 -40%)
下文保留 Benchmark 摘要與 Shadow 快速上手;cache YAML、評分模型、架構 checklist 在對應專題文裡展開。
- warm P95 14:12 → 6:05;σ -40%;排隊歸零
- 優化順序:排隊 → cold/warm 分離 → 快取 → 並發隔離 → 硬體
- 復現:Shadow 快速上手
若團隊日 PR > 20、macOS CI 經常排隊 → 讀 ROI 專題文 填成本模型。月建置 <50 次可繼續 macos-latest。
按症狀跳轉:排隊 → macos-latest 為什麼會排隊 · 建置忽快忽慢 → xcodebuild 波動 · 要算帳 → 買租 ROI · 要資料 → 本文 瀑布圖 + Benchmark。
1. GitHub Actions macOS / iOS CI 為什麼慢?
不同團隊卡不一樣的地方。本文只給總覽——按你的症狀跳到對應專題:
| 你在搜什麼 | 典型症狀 | 去讀 |
|---|---|---|
| macos-latest queued / github actions macos slow | PR 多等 4–8 分鐘,發版週更久 | macos-latest 為什麼會排隊 |
| xcodebuild slow / ios ci slow fix | 同 commit 有時 4 分有時 12 分 | iOS CI 建置很慢怎麼辦 |
| cocoapods cache / deriveddata cache ci | pod install 3–6 分鐘跳動 |
Pods/SPM/DerivedData 快取實戰 |
| self-hosted runner roi / mac mini ci | 要不要買/租 Mac mini? | 買租 ROI 怎麼算 |
| self-hosted architecture / multi runner | 多機並發、fallback、標籤 | self-hosted 架構怎麼搭 |
若你只想看「換 runner 能快多少」,留在本文 Benchmark 與 瀑布圖。
2. Benchmark 結果:self-hosted Mac mini M4 提升多少
8 人 iOS 團隊 · CocoaPods · 日 PR 25–40 · 未改業務程式碼,僅換 runner。warm build 核心資料:
| 指標 | macos-latest | Mac mini M4 | 變化 |
|---|---|---|---|
| P50 | 11:38 | 5:22 | -54% |
| P95 | 14:12 | 6:05 | -57% |
| σ | 3:20 | 1:55 | -40% |
| max | 22:40 | 8:30 | -62% |
| 失敗率(14 天) | 8.0% | 3.2% | — |
環境摘要:8 人 iOS 團隊 · CocoaPods · 日 PR 25–40 · 兩側 Xcode 16.2 對齊 · Mac mini M4 16GB + 1TB 資料碟 · 14 天 187 PR shadow 雙跑。cold/warm 拆分見 建置波動專題;復現見 Shadow 快速上手。
4:00–5:00 |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 52% 5:00–6:00 |■■■■■■■■■■■■■■■■■■ 28% 6:00–7:00 |■■■■■■ 10% P95 6:05 |■■■■■■■■■■■■■■
3. P95 時間瀑布圖:14:12 → 6:05(-57%)
傳播用核心圖——8 分 07 秒節省從哪來:
macos-latest P95 ████████████████████████ 14:12
│
排隊消除 −4:50 ████████████░░░░░░░░░░░░
cache/Pods −1:40 ████░░░░░░░░░░░░░░░░░░░░
xcodebuild −1:15 ███░░░░░░░░░░░░░░░░░░░░░
簽名/上傳 −0:20 █░░░░░░░░░░░░░░░░░░░░░░░
▼
self-hosted P95 ██████████ 6:05 (−57%)
排隊單項約 −4:50 → 讀 排隊專題。快取約 −1:40 → 讀 快取實戰。
4. 按你的問題選文章
這套專題按常見排查順序組織——不必全讀,從你最痛的那篇開始:
排隊很痛? → macos-latest 為什麼會排隊(籌備中) → 本文 Benchmark + 瀑布圖 建置忽快忽慢? → iOS CI 建置很慢怎麼辦(已發布) → Pods/SPM/DerivedData 快取實戰(已發布) 要決定買還是租? → 本文 Shadow 資料 → 買租 ROI 怎麼算(籌備中) → Cloud Mac 套餐 / CI/CD FAQ 要上多機、fallback? → self-hosted 架構怎麼搭(籌備中)
5. 專題導航
每篇只講一個具體問題,獨立成文。本文負責 Benchmark 總覽與跳轉。
| 專題 | 適合誰 | 狀態 |
|---|---|---|
| macos-latest 為什麼會排隊 | PR 經常在佇列裡乾等 | 籌備中 |
| iOS CI 建置很慢怎麼辦 | 同 commit 建置時間差 2–3 倍 | 已發布 |
| 大幅提速 · Pods/SPM/DerivedData 快取實戰 | 想抄 YAML、配 cache key | 已發布 |
| self-hosted runner 值不值得 | 要算買機 vs 租 Cloud Mac | 籌備中 |
| self-hosted Mac mini 架構 | 多 runner、標籤、fallback | 籌備中 |
已發布關聯文:Mac mini M4 CI 入門 · 工時 ROI · CI/CD FAQ
6. Shadow Benchmark 快速上手
下面是最小復現步驟。完整 workflow、灰度 checklist 見 架構專題;cache YAML 見 快取實戰。
- 複製
ios-ci.yml→ios-ci-shadow.yml,增加runs-on: [self-hosted, macos-m4-ios]job - 與
macos-latest對每次 PR 用相同 commit SHA 雙跑 7–14 天 - 記錄牆鐘 P50/P95、queue time;warm build 單獨算 P95(定義見建置波動專題)
- 對比失敗率後,再讀 買租 ROI 做決策
on:
pull_request:
branches: [main, release/*]
jobs:
ios-hosted:
runs-on: macos-latest
ios-shadow:
runs-on: [self-hosted, macos-m4-ios]
# 相同 steps · 相同 SHA
7. 常見問題(FAQ)
GitHub Actions macOS self-hosted runner 能比 macos-latest 快多少?
本次 warm build P95 −57%(14:12→6:05),σ −40%。見 Benchmark;復現見 Shadow 快速上手。
GitHub Actions macOS runner 為什麼會排隊?
共享託管池 + 發版週高並發。排隊不計費但計入牆鐘。完整拆解 → 排隊專題。
self-hosted runner 會不會更不穩定?
取決於維運:磁碟水位、runner 守護、簽名材料。shadow 期間可對比失敗率;本文 14 天失敗率 8.0% → 3.2%。保留 macos-latest fallback 可降低心理風險。
Mac mini 做 CI runner 是否值得?
日 PR 20+ 且排隊惡化時值得評估。月建置 <50 可繼續託管。評分模型與 TCO → 買租 ROI。
GitHub macos-latest 有哪些限制?
共享佇列、短生命週期工作區、快取跨 job 不穩定、並發 I/O 爭搶。無法固定 DerivedData 或消除排隊。
iOS CI P95 怎麼優化?
排隊 → cold/warm → 快取 → 並發 → 硬體。分步見 排隊 · 建置波動 · 快取實戰。
CocoaPods cache 怎麼優化?
完整 YAML 與 key 設計 → cache 專題。
遷移要多久?
準備 1–2 天 + shadow 7–14 天 + 灰度 3–5 天。先 shadow 只跑 test,再導簽名。
8. 結論
換 self-hosted runner 後 warm P95 可從 14:12 壓到 6:05,變異數也明顯收斂。本文給 Benchmark 與瀑布拆解;排隊、建置慢、快取、ROI、架構各有專題展開。先用 Shadow 雙跑拿你們自己的資料,再決定要不要上獨享 Mac。
算清楚 ROI 再下單
建議路徑:Shadow 雙跑 → 買租 ROI → 租用 Mac mini M4。Vuncloud 提供獨享 M4(預裝 Xcode、1TB 資料碟、runner 指引)。