2026 CI iOS Codemagic géré ou Mac distant dédié Facturation à la minute, slots de concurrence, matrice de migration, self-hosting SSH façon VPS

Si vous livrez iOS ou Flutter sur Apple Silicon, vous comparez sans doute le CI macOS géré Codemagic à la location d'un Mac distant dédié en mode VPS : SSH, Xcode figé, agents, maîtrise disque et signature. Public : ingénieurs plateforme et leads mobile. Douleur : compteurs de minutes, slots de concurrence, sémantique de file et risque de migration en saison de release. Résultat : sept hypothèses à stress-tester, une matrice de décision (liens Bitrise et Xcode Cloud), un runbook SSH en six étapes, métriques prêtes pour RFC, FAQ vers tarifs de location et centre d'aide.

01

Sept hypothèses à stress-tester avant de figer les minutes cloud Codemagic ou la capacité Mac self-hosted

Codemagic regroupe YAML mobile, modèles Flutter/iOS et tableaux de bord rendant les minutes facturables visibles. Cette clarté a de la valeur—et peut masquer les vraies pannes : empreintes Xcode, plafonds de slots de concurrence, Trousseaux de signature et amplification disque sur de longs graphes de dépendances. Les revues qui sautent ces couches finissent par comparer des logos plutôt que des plans d'exécution.

Le CI géré n'est pas « zéro ops ». Les stacks cloud font tourner les images ; les voies self-hosted exigent des contrats de cache alignés sur la gouvernance SwiftPM, CocoaPods et DerivedData. La question : imposer ces frontières via le calendrier fournisseur ou via vos tests d'acceptation sur du matériel accessible en SSH quand les jobs passent au rouge à 2 h.

  1. 01

    Facturation minute = budgets prévisibles : les minutes se multiplient par le parallélisme et les relances. Un test d'intégration instable relancé cinq fois peut consumer l'enveloppe release plus vite que le modèle finance. Suivez la variance des minutes facturables, pas seulement les totaux mensuels.

  2. 02

    Les slots de concurrence semblent infinis jusqu'au mur : les paliers plafonnent les jobs macOS simultanés. Les pics Archive + suites UI peuvent faire la queue même si chaque job est « rapide ». Inscrivez les workflows parallèles max dans les SLA avant de promettre un cut du vendredi.

  3. 03

    Self-hosted ne signifie pas zéro minute : vous échangez souvent des factures cloud visibles contre loyer fixe, patches, montées d'agents et ménage disque—le coût double voie est normal en migration.

  4. 04

    La signature peut rester sur un laptop : certificats entreprise et flux match appartiennent à des utilisateurs CI dédiés avec runbooks de rotation—voir CI headless Fastlane et pools de build entreprise.

  5. 05

    SSH façon VPS n'est pas optionnel : pour du CI mobile prod, SSH non interactif, hôtes sans veille et pistes d'audit de commandes sont la base—reprennez la discipline de SSH vs VNC depuis un VPS Linux et alternatives CI SSH série M.

  6. 06

    Un Mac ne peut pas tout orchestrer sans isolement : sans séparation de chemins, agents Codemagic, runners GitHub Actions et shells GitLab Runner piétinent les mêmes racines DerivedData.

  7. 07

    Les tests réseau s'arrêtent au HTTPS navigateur : les agents de build ont besoin d'egress stable et de callbacks fournisseur ; les proxys TLS laissent des workers « en ligne » mais affamés—prenez des preuves côté hôte, pas seulement du vert console.

Opérationnellement, publiez trois métriques avant d'acheter un second slot ou un second Mac : P95 profondeur de file, distribution durée Archive et delta disque hebdomadaire. Sans elles vous ne dupliquez le chaos sous une UI plus jolie. Face aux laptops de bureau, des hôtes Apple Silicon dédiés loués améliorent prévisibilité alimentation, pièces et mains distantes ; face à la virtualisation macOS douteuse, des Mac mini physiques réduisent risque signature et review—notez ces deltas dans le RFC, pas dans le chat.

Si vous évaluez d'autres plans de contrôle, lisez orchestration hybride CircleCI et élasticité Buildkite Agent pour séparer « qui possède YAML et permissions » de « qui possède CPU macOS et NVMe ». Codemagic est dans le même panier : forte ergonomie mobile sur le plan de contrôle, exécution toujours liée à la physique du matériel Apple.

02

Matrice de migration : macOS cloud Codemagic, Codemagic sur votre Mac et nœuds Mac distants dédiés

Il n'y a pas de gagnant universel—seulement l'adéquation aux contraintes. Cette matrice s'adresse aux leads qui doivent défendre un choix devant finance et sécurité. Les lignes opposent minutes macOS gérées par le fournisseur, Codemagic sur votre machine et capacité Mac distant dédiée opérée comme des nœuds cloud (souvent avec Codemagic—ou un autre orchestrateur—au-dessus).

DimensionmacOS cloud CodemagicCodemagic + Mac self-hostedMac distant dédié (pool de nœuds)
Forme de coûtMinutes de build facturables + palier de concurrenceSouvent double voie : minutes cloud pour jobs légers + loyer fixeForme capacité : loyer, palier disque, egress—proche budget VPS/nœud
Modèle de concurrencePlafonds de slots parallèles imposés par la plateformeVous dimensionnez CPU/IO honnête par machine ; la file devient localeSlots exclusifs documentés ; labels hybrides routent le travail lourd
Risque de fileLes pics de flotte partagée peuvent étirer les fenêtres releaseL'attente se déplace vers la santé de votre pool d'agentsLes files deviennent votre problème runbook—et votre surface de contrôle
Disque & cacheBuilds propres éphémères ; caches chauds coûtent des minutesDerivedData chaud possible avec disciplineChemins fixes, nettoyage cron, alertes seuil—voir guides gouvernance cache
Entrée opsUI web + YAML ; SSH hôte limitéLogs agent + triage SSH sur hôte possédéSSH complet, launchd, monitoring—modèle mental VPS
Split typiqueChecks PR, voies unit Flutter/iOS, expériencesVoies Archive avec domaines de signature stablesAgents 24/7, estates multi-orchestrateur, sidecars IA/automation

« Louer un Mac comme un VPS » ne signifie pas abandonner Codemagic—c'est garder des workflows familiers tout en verrouillant Xcode + secrets + NVMe derrière des hôtes dédiés contractuels accessibles en SSH.

Les équipes matures hybrident : validation légère sur stacks gérées où les minutes sont prévisibles, et routent Archive, signature entreprise et longues suites d'intégration vers du matériel dédié avec conditions explicites. Plutôt que monter seulement la concurrence cloud, ce schéma déplace la pression de pic de « attendre des crédits » à « attendre sa propre file »—les pannes atterrissent plus près des hôtes maîtrisés.

Documentez le RACI « qui peut muter la signature » et « qui peut effacer les caches » sur Codemagic, GitHub et GitLab—sinon trois pipelines pagent ensemble l'après-midi d'expiration certificat. Finance doit réutiliser la grille d'hypothèses TCO achat vs location et la lentille contrat des SLA location Mac cloud avant de renégocier les paliers.

Quand les minutes gérées gagnent—et quand les nœuds dédiés gagnent

Les minutes gérées gagnent pour un onboarding rapide, des stacks curatés et peu de babysitting hôte ; des releases modérées ; des minutes dans des enveloppes prévisibles ; et l'acceptation de la sémantique de file plateforme aux pics. Les nœuds dédiés gagnent pour concurrence exclusive, arbres persistants, daemons custom, egress fixe, estates multi-orchestrateur ou réponse incident SSH-first—les mêmes signaux qui poussent de Xcode Cloud vers une capacité façon nœud.

Un schéma de migration pratique : garder YAML workflow et groupes d'environnement stables en ne changeant que la cible machine : cloud pour smoke PR, pool self-hosted pour Archive. Cela limite le blast radius : logs familiers, tendances minutes sur voies légères, un seul SSH pour signature/cache. Documentez date de bascule, trigger rollback (ex. P95 file au-dessus du SLA deux fenêtres release consécutives) et qui peut basculer les conditions—sinon l'« hybride temporaire » devient confusion permanente.

03

Runbook de migration en six étapes : des minutes cloud au self-hosting SSH façon VPS sur Mac distant dédié

L'ordre compte : identités et répertoires d'abord, liaison agent ensuite, parallélisme en dernier. Les libellés suivent la doc Codemagic actuelle—ce runbook fournit le squelette ingénierie pour votre wiki interne.

  1. 01

    Inventorier minutes facturables et usage des slots : exportez 90 jours de minutes de build, pic de jobs macOS parallèles et taux de relance. Finance et ingénierie doivent voir le même graphique avant commande matériel.

  2. 02

    Provisionner un utilisateur CI macOS dédié : ne jamais mélanger avec des sessions Apple ID personnelles ; standardisez des préfixes comme ~/codemagic-ci et désactivez la veille—même baseline que les autres guides self-hosted.

  3. 03

    Geler les empreintes toolchain : capturez xcodebuild -version, Ruby, Flutter et lockfiles dans la doc repo ; croisez avec empreintes Xcode reproductibles.

  4. 04

    Enregistrer la capacité self-hosted selon le flux fournisseur : traitez les tokens d'enrollment comme des secrets rotatifs ; vérifiez HTTPS sortant et callbacks depuis l'hôte, pas seulement depuis un navigateur laptop.

  5. 05

    Lier les workflows au groupe machine visé : les défauts ciblent souvent encore le cloud—des conditions explicites pour Archive et signature évitent la consommation silencieuse de minutes.

  6. 06

    Canari sur le même SHA Git sur voies cloud et dédiées ; comparez attente file, temps mur et delta disque avant de monter le parallélisme ou retirer des slots.

yaml · champs de revue (exemple)
sla.max_queue_minutes = 25
cost.window_days = 90
capacity.peak_parallel_macos = 4
disk.watermark_free_pct = 20
entry.default = "ssh_ci_user"
split.light = "codemagic_cloud"
split.heavy = "dedicated_remote_mac_pool"
info

Remarque : le triage SSH-first bat VNC pour CI sans surveillance. Si un prompt Keychain interactif est nécessaire, planifiez-le, documentez-le, puis revenez aux agents headless—voir la checklist SSH liée.

Après fermeture, branchez la surveillance sur temps d'attente file et seuil disque hôte : le premier révèle des cibles workflow mal liées, le second des politiques de cache folles. Croisez avec design de file Maestro si les suites UI partagent l'hôte—jobs compilation lourds et fermes simulateur ont des profils IO différents.

04

Facturation minute, slots de concurrence et files—traduire le langage fournisseur en SLA release

Le prix du CI géré se lit le mieux comme deux leviers : durée des jobs (minutes) et nombre de jobs macOS simultanés (slots). Ils interagissent : un slot bloqué par un Archive lent stoppe d'autres workflows même si le compteur minute semble « ok ». En semaine release, la surprise douloureuse est rarement une compile lente—c'est des workflows parallèles qui se percutent sous un plafond de slots, transformant un tableau vert en train manqué.

Traduisez les tableaux de bord fournisseur en critères d'acceptation ingénierie. Exemples : temps de file max avant escalade ; relances max par commit ; suites UI partageant-elles les slots avec Archive ; nightlies consommant-elles les slots de pic réservés aux tags release. Mettez ces champs dans le même document que le RACI signature pour éviter des silos ops/sécurité.

Les Mac distants dédiés retournent la conversation : vous avez encore des files, mais ce sont vos files—bornées par CPU, mémoire, IO disque et politiques de parallélisme honnêtes que vous publiez. Proche du raisonnement sur flottes VPS Linux : douze builds Docker sur deux vCPU sans mutex est impensable ; traitez Apple Silicon pareil. Exprimez les plafonds via mutex workflow, utilisateurs Unix séparés par orchestrateur ou machines par classe de risque.

warning

Attention : suspendez le scheduling quand le disque libre passe sous le seuil d'équipe ; nettoyez volontairement et journalisez les chemins supprimés pour audit. La famine de slots par disques pleins ressemble à une « file mystérieuse » dans l'UI.

La finance doit suivre « heures d'héroïsme release évitées » et « achats minutes cloud d'urgence évités », pas seulement le prix unitaire. Les voies self-hosted échangent factures Codemagic visibles contre patches, montées Xcode et agents ; l'hébergement loué regroupe souvent la logistique multi-régions—tout noter trimestriellement. Sécurité : les agents self-hosted exécutent des scripts dépôt arbitraires—traiter les hôtes comme prod : rotation clés SSH, auth clé seule, sudo minimal, comptes build isolés.

RGPD : ne conservez logs de build, artefacts et matériel de signature temporaire que le temps requis par les preuves et contrats ; fixez la rétention dans le runbook, tracez les accès et minimisez les données personnelles dans les logs—surtout quand les agents exécutent des scripts dépôt arbitraires.

Si vous faites tourner des agents de code IA ou des gateways OpenClaw sur le même estate, isolez ports et racines de travail des arbres CI—lisez Gateway sur macOS avec launchd pour que les sidecars d'automation ne rivalisent pas avec la marge disque Archive.

05

Trois chiffres à coller dans les RFC internes—et comment clore le débat de migration

Ajustez les seuils à la masse du repo et aux politiques de parallélisme ; l'objectif est des chiffres prêts pour revue, pas des constantes universelles.

  • Seuil disque : gardez au moins 20 % d'espace libre sur les volumes CI ; suspendez le scheduling avant des nettoyages destructifs—même baseline que nos articles Bitrise et CircleCI.
  • Sonde de concurrence : basez la mémoire pic par job Archive, puis montez les slots linéairement—les pics du linker Apple Silicon dépassent souvent les moyennes.
  • Crossover minute-location : quand minutes facturables sur 90 jours + montées de slots dépassent loyer dédié + heures ops, hybride ou self-host complet mérite un pilote formel—pas un vote couloir.

Les laptops empruntés combattent veille, mises à jour OS surprises et interrupteurs humains ; la virtualisation macOS grise échoue aux audits et casse la fidélité simulateur. Garder Codemagic—ou tout orchestrateur mobile avisé—comme plan de contrôle familier tout en posant l'exécution macOS sur des nœuds distants dédiés, always-on, SSH-friendly transforme les pipelines de « parfois vert » en « niveau contrat ».

Face au matériel personnel ponctuel ou aux hôtes partagés opaques, s'appuyer uniquement sur des minutes gérées sans frontières disque et signature produit souvent des files imprévisibles, des pics de minutes sur relances et des pistes d'audit faibles quand les incidents exigent l'accès hôte. Pour une automation 7×24 prévisible, des frontières de clés nettes et des paliers disque stables sur builds iOS, CI/CD et plateformes agents, la location cloud Mac Mini NodeMini est un plan d'exécution long terme solide : CI géré pour l'ergonomie d'intégration, nœuds dédiés pour la capacité accessible en SSH, règles de slots et seuils dans vos runbooks. Comparez les SKU via les tarifs de location et intégrez-vous via le centre d'aide.

Liez ce runbook aux paliers de changement toolchain internes pour que montées Xcode mineures vs majeures aient des approbations et périmètres d'invalidation cache distincts—évitez « tout rouge après jour d'upgrade » sans frontière signature ou disque attribuable.

FAQ

FAQ

Quand vous avez besoin de concurrence exclusive, caches chauds, domaines de signature maîtrisés ou triage SSH façon VPS sur matériel always-on. Pilotez deux semaines en journalisant P95 file, minutes facturables et delta disque. Comparez les paliers matériel sur les tarifs de location avant de réécrire chaque workflow.

Les slots plafonnent les jobs macOS parallèles ; les minutes s'accumulent pendant l'exécution—les pics peuvent faire la queue aux releases même si chaque job est rapide. Modélisez le parallélisme pire cas, inscrivez les minutes max de file dans les SLA et vérifiez les baselines de connectivité dans le centre d'aide.

Oui—gardez Codemagic comme plan de contrôle et liez les workflows lourds à des pools Mac distants dédiés. Séparez validation PR légère sur cloud et Archive/signature sur hôtes dédiés ; lisez labels runners GitHub Actions si vous multi-hébergez des orchestrateurs.