Mac mini M4 16 Go loué — runner GitHub Actions auto-hébergé : labels, matrice _work, 2 jobs parallèles max, smoke 12 étapes
Sur un Mac mini M4 16 Go loué, un runner GitHub Actions auto-hébergé n’est pas une case « workflow vert » — c’est une discipline auditable : labels, matrice disque _work, plafond 2 jobs parallèles, hygiène des secrets, POP 6 régions et smoke en 12 étapes. Nous nous alignons sur la documentation GitHub et les spécifications Mac mini, avec une comparaison aux runners hébergés facturés à la minute.
Divulgation : KvmZone est le fournisseur cité. Tarifs = grille KvmZone ; comportement runner = docs GitHub.
Plans sur tarifs, SSH sur aide.
Pourquoi un Mac mini M4 loué pour un runner auto-hébergé
Les runners macos-latest hébergés conviennent aux builds occasionnels ; les pipelines iOS/macOS avec étiquettes fixes (self-hosted,macOS,m4,kvmzone-hk) demandent un hôte SSH et un runbook. Vs un portable de bureau :
- Secrets et _work séparés — PAT, clés ASC,
.npmrcsur l’utilisateur serveur. - POP interchangeable — HK/SG souvent plus prévisibles pour
actions/checkout. - Redémarrages auditables —
launchd+runsvc.sh, smoke archivé par semaine de facture.
SSH d’abord ; VNC seulement pour trousseau macOS.
Labels runner
Voir labels GitHub. Tableau runbook :
| Label | Rôle | Workflow |
|---|---|---|
self-hosted | Base | runs-on: [self-hosted, macOS] |
macOS | OS | Isolation vs Linux |
arm64 | Arch | Pas de scripts x64 par erreur |
m4-16gb | Mémoire | Pas de double Xcode + double npm ci |
kvmzone-hk… | POP | CI journée APAC → HK/SG |
lane-ios | Voie | Fastlane |
Matrice disque _work
Par défaut ~/actions-runner/_work. Sur 256 Go, surveillez jobs parallèles × pic _work.
| Signal | Jaune | Action |
|---|---|---|
| APFS libre | <20 Go | Geler workflows ; du -sh _work/* |
| Pic _work/job | >12 Go | actions/cache ou split lane |
| Reclone/semaine | >2 | Git shallow |
| 2 jobs | _work >22 Go | Violation 16 Go |
Ajouter un runner — documenter --replace.
Plafond 2 jobs parallèles sur 16 Go
- 1 job lourd (archive Xcode,
npm cicomplet) — hôte dédié. - 2 jobs légers (lint, petit
swift build) — swap < 15% : playbook swap. - ≥3 — second Mac loué.
Concurrency du runner group = 2.
Hygiène des secrets
- Secrets repo/org pour CI ; PAT/p12 en
/etc/runner/*.env0400. - Pas de
echo/printenv;::add-mask::. - OIDC plutôt que PAT longue durée.
- Une machine = un périmètre de confiance.
POP 6 régions
HK, Tokyo, Seoul, Singapore, US East, US West. Mesurer RTT vers github.com depuis l’hôte loué.
| Nœud | Profil | Note |
|---|---|---|
| Hong Kong | APAC continent | VPN entreprise |
| Japon (Tokyo) | JP / APAC | Facturation |
| Corée | FinTech | Audit clés |
| Singapore | Hub, gros cache | Prix SKU |
| US East | API US | Swap heures marché |
| US West | CI soir | Git shallow |
Smoke 12 étapes (runner)
| # | Porte | OK |
|---|---|---|
| 1 | SSH | Utilisateur dédié |
| 2 | Disque | ≥20 Go (28 si 2 jobs légers) |
| 3–4 | config.sh, service | Labels OK, idle |
| 5 | workflow_dispatch | Vert, pas de fuite secret |
| 6–7 | checkout, npm ci | Pic _work noté |
| 8 | 2 jobs légers | swap <15% |
| 9–12 | Logs, reboot, POP, finance | + facturation GitHub |
Louer vs runners hébergés GitHub
Hébergé = minutes, zéro ops. Location M4 = pipelines iOS stables, POP fixe, OPEX prévisible. <26 semaines → louer : TCO.
FAQ
RUNNER_WORK_DIRECTORY documenté avant enregistrement.Liens
Fixer un runner CI auditable sur Mac loué
Comparez les 6 POP sur la page tarifs ; SSH depuis l’aide ; smoke 12 avant prod.