Architectures de build réutilisables

Le rôle du Mac cloud dans chaque chaîne de livraison

Ces workflows ne sont ni des témoignages clients ni des promesses de résultats non vérifiés. Ils distinguent les déclencheurs, les tâches sur machine physique dédiée, les responsabilités liées à la signature, l’emplacement des journaux et la destination des artefacts. Votre équipe peut ainsi les adapter à ses dépôts et à son modèle d’autorisations.

5 workflows Builds, livraisons et expérimentations
1 nœud dédié Les tâches s’exécutent en file d’attente
4 périmètres distincts Code, identifiants, journaux et artefacts gérés séparément
PASSEPORT DE BUILD iOS Release / Main
RUN-042
01
Commit du code Une tâche est lancée par un événement du dépôt
Reçu
02
Dépendances et cache Restauration depuis le fichier de verrouillage et suivi des accès au cache
Terminé
03
Archive Xcode Archivage sur une machine physique dédiée
En cours
04
Vérification et transfert Export d’artefacts contrôlés après vérification de la signature
En attente
File de tâches MAIN → RELEASE → HOTFIX Un répertoire de travail distinct par tâche
Contrôle de la signature Configuration correspondante Les données sensibles restent sous la responsabilité de l’équipe
Comment utiliser ces exemples

Définissez les responsabilités avant de reprendre les étapes d’automatisation

Ces architectures décrivent uniquement le flux des tâches. Les autorisations du dépôt, les éléments de signature, le compte développeur, la validation des versions et la durée de conservation des artefacts restent à définir par l’équipe utilisatrice.

Environnement reproductible

Fixez les versions de Xcode et des Command Line Tools, les fichiers de verrouillage des dépendances et les commandes de nettoyage. Avant tout changement de version, validez-le dans un répertoire de travail distinct, puis faites-le entrer dans la file principale.

Versions et fichiers de verrouillage

Aucun identifiant dans le dépôt

Injectez les jetons, certificats et profils de provisionnement par un mécanisme contrôlé. Ne conservez dans les journaux que les informations utiles au diagnostic et supprimez les chemins, jetons et adresses de dépôts privés avant leur diffusion.

Privilèges minimaux

Une destination définie pour chaque artefact

Nommez séparément les archives, packages exportés, fichiers de symboles et rapports de test, en leur associant l’identifiant du commit. Une fois le transfert terminé, supprimez les copies temporaires du nœud conformément aux règles de l’équipe.

Export contrôlé
Build automatisé d’apps

Cinq étapes, du commit aux artefacts prêts pour validation

Ce workflow permet d’enregistrer CDNMac M4 comme runner auto-hébergé. Un événement du dépôt lance la tâche, puis les artefacts produits sont transmis à l’équipe pour validation ou à son système de distribution.

01
Commit du code Déclencheur : développeur ou processus de fusion

La branche principale ou un tag de version lance la file. La tâche consigne d’abord le hash du commit, la branche, le déclencheur et le Scheme cible, sans afficher de variables sensibles dans les journaux.

Destination : répertoire de travail isolé sur machine physique dédiée
02
Restauration des dépendances Déclencheur : script d’exécution

Restaurez les dépendances Swift Package, CocoaPods ou autres à partir des fichiers de verrouillage. La clé de cache doit inclure au minimum leur empreinte et la version des outils pour éviter qu’un ancien cache ne contamine une autre version.

Destination : répertoire de cache versionné et journaux des dépendances
03
Archive Xcode Déclencheur : tâche de build

Lancez l’archivage en précisant le workspace, le scheme, la configuration et la destination. En cas d’échec, conservez le code de sortie, les journaux essentiels et le bundle de résultats.

Destination : répertoire d’archive associé au commit
04
Vérification de la signature Déclencheur : tâche de publication

Vérifiez la correspondance entre le Bundle Identifier, l’équipe, la validité du certificat et le profil de provisionnement. Le compte développeur et les éléments de signature restent gérés par l’équipe utilisatrice.

Destination : liste de contrôle, sans identifiants en clair
05
Archivage des artefacts Déclencheur : script de transfert

Exportez le package d’installation, les fichiers de symboles, le résumé du build et les sommes de contrôle, puis copiez-les dans un espace de stockage contrôlé par l’équipe. Supprimez le répertoire temporaire une fois le transfert confirmé.

Destination : stockage contrôlé et file de validation de l’équipe
File multi-branches

Une machine physique dédiée, trois types de branches en file d’attente

Une machine dédiée ne signifie pas que toutes les tâches s’exécutent en parallèle. Avec un seul CDNMac M4, mieux vaut définir clairement les priorités, les répertoires de travail et les règles de nettoyage afin d’éviter les interférences entre les tâches de publication et les vérifications courantes.

MAIN Vérification continue

Branche principale

Après chaque fusion, lancez les tests unitaires, les contrôles statiques et un archivage de base. Le cache peut être réutilisé, mais isolez DerivedData par projet et par version de Xcode.

Priorité
Normale
Répertoire de travail
work/main
Nettoyage à la fin
Supprimer les fichiers non suivis
RELEASE Candidat à la livraison

Branche de publication

À son entrée dans la file, suspendez les tâches non essentielles du même dépôt. Utilisez une configuration distincte pour la vérification de signature et l’export, et demandez à l’équipe de valider le résumé des artefacts.

Priorité
Élevée
Répertoire de travail
work/release
Nettoyage à la fin
Détruire le trousseau temporaire
HOTFIX Validation manuelle

Branche de correctif

Insérez la tâche dans la file après validation du responsable. Ne restaurez que le cache nécessaire au diagnostic. Une fois le build terminé, supprimez les variables temporaires et consignez le point de référence pour le retour arrière.

Priorité
Validation manuelle
Répertoire de travail
work/hotfix
Nettoyage à la fin
Rétablir la file et le point de référence
Règles de la file

Une tâche de publication ne préempte pas une tâche qui écrit des artefacts. En cas d’échec, collectez les journaux avant de libérer le répertoire de travail. À la fin de chaque tâche, lancez un nettoyage idempotent.

MAIN RELEASE HOTFIX NETTOYAGE
FLUTTER IOS

Distinguez les dépendances multiplateformes des étapes Xcode

Avec Flutter iOS, les temps d’attente se répartissent souvent entre la restauration des dépendances, CocoaPods et le build Xcode. En séparant ces étapes, l’équipe peut vérifier l’efficacité du cache et identifier la couche à l’origine d’un échec.

Étapes distinctes

Chaque étape produit ses propres journaux et code de sortie. L’étape suivante ne lit ses artefacts que si la précédente réussit, ce qui évite de confondre un problème de dépendances avec un échec de compilation Xcode.

  • Vérifiez d’abord les versions du SDK Flutter et les contraintes du projet.
  • Intégrez l’empreinte du fichier de verrouillage à la clé de cache.
  • Invalidez séparément les caches Pods et Dart.
  • Transférez séparément le package exporté et les fichiers de symboles.
01
Restauration des dépendances

Restaurez les dépendances du projet et consignez la version du SDK ainsi que l’empreinte du fichier de verrouillage.

Cache : répertoire des packages Dart
02
CocoaPods

Installez les dépendances iOS natives à partir de Podfile.lock, sans réutiliser un répertoire Pods incompatible.

Journaux : sortie de l’installation Pods
03
Build Xcode

Lancez l’archive en précisant le workspace, le scheme et la configuration.

Artefacts : archive et bundle de résultats
04
Export des artefacts

Après vérification de la signature, exportez les artefacts et générez l’identifiant du commit ainsi que l’empreinte de contrôle.

Destination : stockage contrôlé par l’équipe

Un accès au cache signifie uniquement que le répertoire et la clé correspondants peuvent être réutilisés ; il ne garantit pas un build complet plus rapide. Après une mise à jour de Flutter, CocoaPods, Xcode ou des fichiers de verrouillage, vérifiez à nouveau les limites du cache.

LIVRAISON TESTFLIGHT

Les artefacts passent par la validation de l’équipe avant leur distribution

Le Mac cloud génère et vérifie les artefacts du build, sans remplacer la validation des versions par l’équipe. Le compte développeur, les éléments de signature, les informations de version et la décision de distribution restent sous la responsabilité de l’utilisateur.

  1. 01

    Générer un candidat

    La branche de publication produit une archive et un export accompagnés du hash du commit, du numéro de version, du numéro de build, des fichiers de symboles et de l’empreinte de contrôle.

  2. 02

    Faire valider par l’équipe

    Le responsable vérifie le périmètre des changements, la correspondance de la signature, les informations relatives à la confidentialité, l’usage des autorisations et les résultats des tests. En cas de refus, relancez le build à partir du commit concerné.

  3. 03

    Lancer la distribution

    Après validation, la tâche de publication contrôlée par l’équipe utilise des identifiants à privilèges limités pour effectuer l’envoi. Ne stockez pas de données sensibles dans le dépôt ni dans les journaux de build ordinaires.

  4. 04

    Consigner le résultat du transfert

    Conservez l’identifiant des artefacts, la décision de validation et les journaux nécessaires. Une fois le transfert terminé, supprimez du nœud les fichiers exportés et identifiants temporaires.

Le nœud CDNMac prend en charge Build, archivage, vérification de la signature et export des artefacts
L’équipe utilisatrice prend en charge Gestion du compte, éléments de signature, validation des versions, informations de distribution et conformité
EXPÉRIMENTATION IA SUR APPLE SILICON

Vérifiez la compatibilité des modèles sans promettre de débit

CDNMac M4 offre une puce M4, 16 Go de RAM et un SSD de 256 Go. Il convient aux tests de compatibilité de modèles locaux et au prototypage. Vérifiez d’abord les besoins du modèle, du contexte, des données et de la mémoire.

A

Préparer les données

Ne synchronisez que le sous-ensemble nécessaire à l’expérimentation et consignez son origine et sa version. Anonymisez les données sensibles et utilisez des répertoires distincts pour les données sources, les fichiers intermédiaires et les résultats.

Entrée
Échantillons versionnés
Point de retour
Copie en lecture seule des données sources
B

Vérifier l’environnement d’exécution

Consignez les versions de macOS, du runtime, du framework et du format du modèle. Commencez par un petit échantillon pour vérifier le chargement, l’inférence et l’usage mémoire avant d’élargir l’expérimentation.

Vérification
Versions et mémoire disponible
Point de retour
Liste des dépendances figée
C

Exporter les résultats

Fournissez les paramètres de l’expérience, un résumé des résultats et les journaux nécessaires, sans inclure l’ensemble des données sensibles dans le rapport. Avant la fin de la location, copiez les résultats utiles dans un stockage contrôlé.

Sortie
Paramètres, résumé et journaux
Limite
Aucune promesse de débit spécifique
Évaluation de la configuration

Si le modèle, le contexte et les données intermédiaires ne fonctionnent pas de manière stable avec 16 Go de RAM, ou si vous avez besoin d’une configuration de puce ou de mémoire non répertoriée, contactez d’abord l’équipe de service pour vérifier sa disponibilité. La réussite d’un prototype ne garantit pas une capacité adaptée à la production.

Demander conseil sur la configuration
Exemples de retour d’expérience d’équipe

Présenter la valeur du workflow comme un fait technique vérifiable

Voici des exemples de formulations par rôle, utilisables lors d’un bilan interne. Ils ne constituent ni des avis de clients particuliers, ni des évaluations, ni une approbation d’entreprise.

« Ce qui m’importe, c’est que la file soit réservée à notre équipe et que les journaux permettent de diagnostiquer les échecs. Définir clairement le répertoire de travail et la destination des artefacts est plus utile que de parler vaguement de vitesse de build. »

Responsable mobile

« Quand des tâches de plusieurs branches partagent la même machine physique, il faut surtout définir les priorités, les clés de cache et les règles de nettoyage. Les ressources dédiées assurent une base d’isolation, mais c’est à nous de définir le pipeline. »

Ingénieur plateforme CI

« En cas de connexion depuis différents fuseaux horaires, je veux que l’accès à distance, les builds en arrière-plan et l’export des artefacts soient indépendants. Ainsi, une brève instabilité du réseau local ne change rien à une tâche de build en cours. »

Développeur indépendant
Reprendre le workflow

Prérequis, variables d’environnement et points de retour en cas d’échec

Avant de reprendre ces étapes, commencez par créer une version minimale fonctionnelle. Vous pouvez adapter les noms des variables d’environnement aux conventions de l’équipe, mais ne transmettez aucune valeur sensible au dépôt ni directement aux journaux de build.

Liste de mise en œuvre des cinq workflows de référence
Workflow Prérequis Variables d’environnement Point de retour en cas d’échec
Build automatisé d’apps Accès au dépôt, version de Xcode, Scheme, fichier de verrouillage des dépendances, configuration d’export REPO_REF
BUILD_SCHEME
EXPORT_PATH
Conserver le bundle de résultats et l’identifiant du commit, supprimer le trousseau temporaire et revenir au dernier commit compilable
Build multi-branches Priorité des branches, répertoires de travail distincts, limite de concurrence, script de nettoyage idempotent BRANCH_NAME
RUN_PRIORITY
WORK_ROOT
Arrêter les tâches suivantes, sauvegarder les journaux en cours, rétablir un arbre de travail propre et l’ordre initial de la file
Flutter iOS Version de Flutter, Podfile.lock, workspace Xcode, règles des clés de cache FLUTTER_ROOT
PODS_CACHE_KEY
IOS_SCHEME
Invalider le cache étape par étape, conserver les journaux réutilisables et reprendre depuis la dernière étape validée
Livraison TestFlight Validation de publication, informations de version, vérification de signature, contrôle des artefacts et identifiants contrôlés par l’équipe RELEASE_VERSION
BUILD_NUMBER
ARTIFACT_PATH
Arrêter la tâche de distribution, révoquer les identifiants temporaires, revenir à la liste de validation et régénérer un candidat
Expérimentation IA Format du modèle, petits échantillons de données, version du runtime, suivi de la mémoire et répertoire d’export MODEL_PATH
DATASET_PATH
RESULT_PATH
Conserver la liste des paramètres et le résumé des résultats, rétablir les dépendances figées et revenir à la copie en lecture seule des données sources
01 Commencer par une tâche minimale

Limitez-vous à un dépôt, un Scheme et une destination de sortie pour vérifier que le nœud peut effectuer le workflow de bout en bout.

02 Ajouter ensuite les variables sensibles

Injectez des identifiants à privilèges minimaux par un mécanisme contrôlé, puis vérifiez l’anonymisation des journaux ainsi que les procédures d’expiration et de rotation.

03 Élargir la file en dernier

Avant d’ajouter d’autres branches, définissez les priorités, les délais d’expiration, la récupération après échec et les règles de nettoyage des répertoires de travail.

Déployez le workflow de référence sur un Mac cloud dédié

Choisissez d’abord la durée de location et le nœud, puis suivez le guide pour vérifier la connexion, l’environnement Xcode, les autorisations du dépôt et votre première archive. La disponibilité réelle et les informations de livraison sont celles affichées en temps réel dans la console.