Pour des workflows réels

Intégrez un Mac dans le cloud dédié à vos builds, tests et opérations à distance

HexVM attribue à chaque commande un nœud physique Mac mini indépendant, et non une machine virtuelle. Votre équipe conserve ses dépôts, scripts et règles de publication existants, en déplaçant uniquement vers le cloud les étapes nécessitant macOS et Apple Silicon.

pipeline / macos-arm64 En cours
01

Dépôt de code

Déclenchement par commit
02

Nœud dédié

Vérification de l’environnement
03

Xcode

Build et tests
04

Artefacts

Archivage et téléversement
Résultat de l’exécution Environnement reproductible, tâches traçables
Filtrer par charge de travail

Commencez par identifier les tâches à exécuter sur un Mac dans le cloud

Toutes les étapes ne doivent pas être migrées. Sélectionnez un scénario pour consulter le workflow recommandé, les éléments à préparer et les critères de validation avant mise en production, puis choisissez le nombre de nœuds et le mode d’exécution.

Idéal pour l’intégration continue

Transformez votre Runner macOS en environnement d’exécution fixe et maîtrisé

Après chaque commit, la plateforme du dépôt planifie un self-hosted runner qui exécute la restauration des dépendances, les tests, l’archivage et le téléversement des artefacts sur un nœud dédié. Votre équipe définit les règles de déclenchement, la stratégie de concurrence et les autorisations des secrets.

Voir le workflow CI/CD iOS
EntréesDépôt, scripts de build, certificats
ExécutionTests et archivage xcodebuild
ValidationJournaux, résultats de tests, artefacts installables
CI/CD iOS

Un workflow en cinq étapes, du commit au téléversement des artefacts

Une machine physique dédiée convient aux pipelines nécessitant une version fixe de Xcode, un répertoire de cache stable et des limites d’autorisation claires. Le nœud ne partage pas ses ressources de calcul avec d’autres commandes, mais votre équipe reste responsable des droits du dépôt, des éléments de signature et du nettoyage des tâches.

  1. 01

    Commit de code

    Déclenchez la tâche avec une branche, un tag ou une pull request. Limitez d’abord côté dépôt les membres autorisés à déclencher le workflow de publication afin qu’une tâche de test standard n’accède pas aux droits de signature.

    Validation : règles de déclenchement reproductibles
  2. 02

    Planification du Runner

    Attribuez des labels explicites au self-hosted runner, par exemple l’architecture, la version majeure de Xcode et l’usage. Évaluez la concurrence d’un nœud selon le pic de mémoire et le volume d’écriture disque de la tâche.

    Validation : les tâches arrivent uniquement sur le nœud cible
  3. 03

    Build et tests

    Figez les versions des dépendances et exécutez les tests unitaires, tests d’interface ou contrôles statiques. En cas d’échec, conservez le code de sortie, le rapport de test et les journaux clés, plutôt que la seule dernière sortie affichée.

    Validation : la cause de l’échec est identifiable
  4. 04

    Signature et archivage

    Déverrouillez temporairement le trousseau requis par la publication, puis refermez immédiatement l’accès. Séparez les certificats et profils par projet et environnement ; ne les stockez pas durablement en clair dans un répertoire de build standard.

    Validation : privilèges strictement minimaux
  5. 05

    Téléversement des artefacts

    Téléversez l’archive, les rapports de test et les fichiers de symboles, en enregistrant le hash du commit, le numéro de build et la version de l’outillage. Après réussite, supprimez les données sensibles du projet présentes dans les données dérivées.

    Validation : artefacts traçables
Il est recommandé de séparer les niveaux d’autorisation des tests et de la publication.

Le Runner de test n’a pas besoin d’accéder aux certificats de publication ; seules les tâches d’archivage d’une branche protégée chargent les éléments de signature. Ainsi, même si le script d’une tâche standard rencontre une erreur, l’exposition des identifiants reste limitée.

Build d’applications macOS

Faites partager les règles aux builds multi-branches, pas un environnement pollué

Un nœud disponible en continu peut conserver l’outillage validé et le cache de téléchargement, mais chaque tâche doit utiliser un répertoire de travail distinct. Le cache accélère l’exécution, sans être une condition préalable à la réussite du build.

Isolation des branches

Créez un répertoire de travail par numéro de tâche et récupérez les fichiers temporaires à la fin du build. Ne laissez pas deux branches concurrentes modifier le même répertoire de dépendances ou chemin de sortie.

  • Fixer les droits de publication de la branche par défaut
  • Définir une durée de conservation pour les branches temporaires
  • Enregistrer le hash du commit et les paramètres de build

Cache des dépendances

La clé de cache doit au moins inclure le résumé du fichier de verrouillage, la version majeure de l’outillage et l’architecture. En cas d’anomalie de cache, un build propre doit pouvoir être lancé en le contournant en un clic.

  • Distinguer le cache de téléchargement des artefacts de build
  • Définir un seuil de capacité et un ordre de nettoyage
  • Exécuter régulièrement une tâche de référence sans cache

Artefacts de publication

Conservez séparément les résultats de tests, les éléments préparatoires à la notarisation, les packages d’installation et les fichiers de symboles. Le nom des artefacts doit inclure la version, le numéro de build et l’identifiant du commit.

  • Effectuer une vérification d’intégrité après le build
  • Limiter les membres autorisés à écrire dans le répertoire de publication
  • Conserver l’historique des versions de l’outillage de génération
build-check.sh
xcodebuild -version
xcode-select -p
swift --version
git rev-parse --short HEAD
xcodebuild test -scheme "Project" -destination "platform=macOS"

Placez la vérification des versions au début des journaux de chaque build. En cas de dérive de l’environnement, comparez d’abord le chemin de l’outillage, le commit du projet et le fichier de verrouillage des dépendances avant de décider s’il faut nettoyer le cache.

Expérimentation de modèles IA

Validez la compatibilité de l’inférence et des tâches continues sur Apple Silicon

Le Mac dans le cloud convient à la reproduction d’environnements expérimentaux, au contrôle de compatibilité de l’outillage et aux traitements par lots récupérables. Les capacités matérielles sont limitées aux deux configurations disponibles ; n’extrapolez pas les résultats à des spécifications non listées.

Référence d’entrée fixe

Conservez la version du modèle, le résumé des échantillons, la graine aléatoire et les paramètres d’exécution. Comparez les sorties avec le même jeu d’entrées ; une seule exécution ne remplace pas une validation complète.

Versionner l’environnement

Figez les versions du runtime, des packages de dépendances et des outils de conversion du modèle. Avant toute mise à niveau, dupliquez l’environnement et exécutez des échantillons de régression afin de confirmer les changements de sortie et de consommation de ressources.

Concevoir des points de reprise

Écrivez l’avancement et les résultats par lots pour les tâches continues, puis reprenez au dernier lot confirmé après l’arrêt du processus. Ne considérez pas l’état mémoire non persisté comme l’unique source de progression.

Surveiller les limites de ressources

Enregistrez le pic mémoire, la croissance du disque, la durée des tâches et les échantillons en échec. À l’approche des limites du modèle, ajustez en priorité la taille des lots ou le fonctionnement de la file.

Migrez progressivement depuis votre environnement local

Parcours de migration en trois étapes : données, outillage et intégration CI

Copiez d’abord, validez ensuite, puis basculez. Conservez une solution de repli locale jusqu’à ce que le nœud cloud réussisse consécutivement les validations de build, d’autorisations et d’artefacts.

01

Étape 1

Migrer les données nécessaires

Copiez en priorité les données du projet via le dépôt, le stockage d’artefacts et un transfert chiffré. Excluez les caches, répertoires de build temporaires, anciens journaux et identifiants inutilisés.

Checklist de validation

  • Branches et sous-modules du dépôt complets
  • Résumé des fichiers volumineux identique au local
  • Aucune configuration sensible dans le dépôt
  • Données de l’ancien nœud toujours disponibles pour un retour arrière
02

Étape 2

Reproduire l’outillage

Notez la version locale de Xcode, le chemin des outils en ligne de commande, les fichiers de verrouillage du gestionnaire de packages, la source des variables d’environnement et le point d’entrée du script de build, puis reproduisez-les dans le cloud.

Checklist de validation

  • Versions et chemins des outils enregistrés
  • Dépendances restaurables dans un environnement propre
  • Résultats de la suite de tests conformes à la référence
  • Build toujours possible après suppression du cache
03

Étape 3

Connecter la planification CI

Commencez par une branche hors publication, vérifiez les labels de planification, les délais d’expiration, les journaux et les règles de nettoyage, puis ouvrez les branches protégées et les tâches d’archivage signé.

Checklist de validation

  • Les labels du Runner sont sans ambiguïté
  • Les tâches en échec sont récupérées automatiquement
  • Les droits de publication sont limités au workflow autorisé
  • Artefacts et journaux traçables
Seuil de bascule

Réalisez au moins un build propre, une reprise après échec, une validation des autorisations et une traçabilité d’artefact avant de faire du nœud cloud votre environnement d’exécution principal.

Certificats et processus de publication

Limitez les privilèges sensibles aux étapes qui en ont besoin

HexVM fournit un nœud physique dédié et un accès à distance. Votre équipe gère les demandes de certificats, les profils de provisioning, les droits du trousseau, les autorisations de publication et la soumission finale.

Étape du processus Responsabilité de l’équipe Exécution sur le nœud Trace de validation
Préparation des certificats

Définir l’usage des certificats, protéger les mots de passe d’exportation et limiter les membres autorisés.

Importer les éléments requis dans une session contrôlée, sans laisser le trousseau ouvert durablement.

Nom du certificat, état de validité, membres autorisés.

Profil de provisioning

Gérer les profils par identifiant d’app et environnement de publication, puis supprimer les versions obsolètes.

Vérifier la correspondance avant le build et arrêter l’archivage en cas d’échec.

Identifiant d’app, informations d’équipe, version du fichier.

Signature et archivage

Approuver les branches protégées et les tâches de publication, puis contrôler les paramètres de build.

Effectuer l’archivage, l’export et le contrôle d’intégrité, avec un code de sortie explicite.

Hash du commit, numéro de build, résumé de l’archive.

Soumission à la publication

Vérifier les informations de version, les éléments de confidentialité, les captures d’écran et le périmètre de publication.

Préparer les artefacts validés et l’environnement des outils de téléversement.

Soumetteur, version de l’artefact, résultat de la soumission.

Accès au trousseau

Déverrouillez-le uniquement pendant la signature et refermez-le immédiatement à la fin de la tâche. Utilisez des stratégies d’accès distinctes selon les projets et environnements afin qu’une tâche de test n’hérite pas des droits de publication.

Validation de l’archive

Vérifiez l’identifiant d’app, l’identité de signature, la version, le numéro de build et le résultat de l’export. Si un champ ne correspond pas aux attentes, arrêtez le téléversement au lieu d’ignorer manuellement l’erreur.

Avant de libérer le nœud

Révoquez l’enregistrement du Runner, supprimez les certificats et profils, nettoyez les identifiants du dépôt, les répertoires de build et les champs sensibles des journaux, puis confirmez le transfert des artefacts nécessaires.

Contrôles avant mise en production

Checklist de déploiement de l’équipe

Les six points suivants doivent avoir un responsable et une trace de validation clairement définis. Tout élément reposant encore sur un accord verbal peut devenir un risque en cas d’échec de build, de changement d’équipe ou de libération du nœud.

01

Choix de la région

Choisissez la région selon la localisation des développeurs, le chemin des données du dépôt et la direction des téléversements d’artefacts. Les régions actuellement disponibles sont Singapour, Japon (Tokyo), Corée du Sud (Séoul), Hong Kong, États-Unis Est et États-Unis Ouest, soit 6 régions.

  • Qualité de connexion entre l’équipe de test et le nœud
  • Documenter les principales directions de transfert des données
  • Confirmer que la région répond aux exigences internes de l’équipe
02

Choix du modèle

Exécutez d’abord un build complet sur un projet réel, puis choisissez HexVM M4 ou HexVM M4 Pro selon le pic mémoire, la croissance du disque et le mode de concurrence.

  • Mesurer la durée d’un build propre
  • Vérifier l’espace occupé par les dépendances et les artefacts
  • Ne pas estimer la capacité sur un seul build incrémental
03

Autorisations des comptes

Séparez les droits d’administration du nœud, de développement quotidien, d’exécution CI et de publication. Lorsqu’un membre quitte l’équipe ou change de rôle, révoquez immédiatement ses clés et autorisations de dépôt.

  • Établir la liste des membres autorisés
  • Séparer les droits de test et de publication
  • Définir une procédure de rotation des identifiants
04

Connexion au dépôt

Utilisez des identifiants de déploiement ou une autorisation Runner à portée limitée, en n’ouvrant que les dépôts nécessaires aux tâches. Les scripts ne doivent jamais écrire de jetons, clés privées ou identifiants complets dans les journaux.

  • Limiter la portée des dépôts et des branches
  • Masquer les données sensibles dans les sorties
  • Vérifier le comportement après révocation des identifiants
05

Surveillance et reprise

Enregistrez la file des tâches, le taux de réussite, les causes d’échec, l’espace disque et la durée d’exécution. Les tâches continues doivent conserver des points de reprise et pouvoir être relancées en toute sécurité après un échec de build.

  • Définir les destinataires des alertes d’échec
  • Définir un seuil de capacité disque
  • Tester régulièrement les étapes de reprise
06

Analyse des coûts

Par nœud, mesurez la durée effective des builds, l’attente en file, les périodes d’inactivité et le gain du cache. Les tâches courtes peuvent être planifiées à la journée ou à la semaine ; les pipelines continus peuvent être comparés sur des cycles mensuels ou trimestriels.

  • Distinguer durée d’exécution et durée d’attente
  • Analyser le coût des nouvelles tentatives après échec
  • Attribuer l’utilisation des nœuds par projet
Exécutez d’abord une tâche de référence, puis choisissez la configuration à long terme.

Effectuez un build propre et incrémental, les tests, l’archivage et le téléversement d’artefacts avec un dépôt réel. Pour obtenir de l’aide au diagnostic, préparez l’ID du nœud, la région, l’heure de l’incident, les étapes de reproduction et des journaux expurgés.

Commencer le déploiement

Choisissez le Mac dédié adapté à votre pipeline existant

Comparez les deux modèles disponibles et les durées de location, configurez la région et les options, puis passez commande. Tous les frais sont facturés en dollars américains (USD) ; la disponibilité réelle est indiquée en temps réel dans la console.