DevOps

Mac mini M4 16 Go loué — runner GitHub Actions auto-hébergé : labels, matrice _work, 2 jobs parallèles max, smoke 12 étapes

Mac mini M4 16GB loué comme runner GitHub Actions auto-hébergé

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, .npmrc sur l’utilisateur serveur.
  • POP interchangeable — HK/SG souvent plus prévisibles pour actions/checkout.
  • Redémarrages auditableslaunchd + runsvc.sh, smoke archivé par semaine de facture.

SSH d’abord ; VNC seulement pour trousseau macOS.

Labels runner

Voir labels GitHub. Tableau runbook :

LabelRôleWorkflow
self-hostedBaseruns-on: [self-hosted, macOS]
macOSOSIsolation vs Linux
arm64ArchPas de scripts x64 par erreur
m4-16gbMémoirePas de double Xcode + double npm ci
kvmzone-hkPOPCI journée APAC → HK/SG
lane-iosVoieFastlane
Règle : ne pas mélanger lane-ios lourd et second npm ci complet sur 16 Go — matrice parallèle.

Matrice disque _work

Par défaut ~/actions-runner/_work. Sur 256 Go, surveillez jobs parallèles × pic _work.

SignalJauneAction
APFS libre<20 GoGeler workflows ; du -sh _work/*
Pic _work/job>12 Goactions/cache ou split lane
Reclone/semaine>2Git shallow
2 jobs_work >22 GoViolation 16 Go

Ajouter un runner — documenter --replace.

Plafond 2 jobs parallèles sur 16 Go

  • 1 job lourd (archive Xcode, npm ci complet) — 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 GitHub :

  • Secrets repo/org pour CI ; PAT/p12 en /etc/runner/*.env 0400.
  • 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œudProfilNote
Hong KongAPAC continentVPN entreprise
Japon (Tokyo)JP / APACFacturation
CoréeFinTechAudit clés
SingaporeHub, gros cachePrix SKU
US EastAPI USSwap heures marché
US WestCI soirGit shallow

Smoke 12 étapes (runner)

#PorteOK
1SSHUtilisateur dédié
2Disque≥20 Go (28 si 2 jobs légers)
3–4config.sh, serviceLabels OK, idle
5workflow_dispatchVert, pas de fuite secret
6–7checkout, npm ciPic _work noté
82 jobs légersswap <15%
9–12Logs, 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

3 jobs sur 16 Go ?+
Non recommandé — concurrency 2 ou second hôte.
Moins cher que GitHub hébergé ?+
Dépend des minutes et du POP. CI macOS dense → location souvent plus prévisible.
_work sur disque externe ?+
Oui si RUNNER_WORK_DIRECTORY documenté avant enregistrement.
VNC obligatoire ?+
Non — SSH vs VNC.

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.