Parcours du support technique

Identifiez d’abord l’étape où survient la panne, puis décidez s’il faut l’escalader

VMRunner fournit des nœuds physiques Apple Silicon dédiés. Échec de connexion, build anormal, interruption de signature, besoin de stockage, changement de nœud ou vérification de facturation : commencez par des informations reproductibles, plutôt que de redémarrer ou de multiplier les tickets.

  • Échec de connexion
  • Build anormal
  • Besoin de stockage
  • Conseil sur les nœuds
  • Vérification de facturation
DIAGNOSTIC

Tableau de diagnostic du cycle de build

Nœud disponible
  1. 01
    Poignée de main de connexion Vérifier l’adresse du nœud, le port, l’empreinte de l’hôte et les identifiants
    VÉRIFIER
  2. 02
    Référence de l’environnement Noter l’heure système, l’espace disque disponible et les versions des outils
    VÉRIFIER
  3. 03
    Reproduire la tâche Relancer avec la même branche, les mêmes commandes et les mêmes paramètres
    EXÉCUTER
  4. 04
    Cadrer les journaux Conserver la première erreur et les sorties associées avant et après
    CAPTURER
  5. 05
    Escalader le dossier Fournir l’identifiant de commande, le nœud, l’heure et le résultat attendu
    TICKET
Nœud physique dédié 1 commande = 1 nœud dédié
Ordre du premier diagnostic

Six vérifications de référence, plus rapides qu’un effacement direct de l’environnement

Conservez d’abord l’état des lieux, puis réduisez progressivement le périmètre. Notez le résultat de chaque étape pour éviter de chercher au hasard entre connexion, système et configuration du projet.

  1. 01

    Vérifier les identifiants de connexion

    Confirmez que l’adresse du nœud, le nom d’utilisateur, le port et le fichier de clé correspondent à la commande actuelle. Si l’empreinte de l’hôte a changé, vérifiez d’abord les informations du nœud au lieu d’ignorer le contrôle.

    ssh -v vmrunner-node
  2. 02

    Vérifier l’accessibilité réseau

    Vérifiez séparément le DNS, le port cible et le réseau local. Recommencez après un changement de réseau pour distinguer le point de sortie local, le routage et le nœud.

    nc -vz node.example 22
  3. 03

    Contrôler l’espace disque

    Vérifiez le volume système, le répertoire de travail et le cache. Un build peut échouer avant que le disque soit plein : un espace réduit peut aussi provoquer des erreurs de décompression ou d’archivage des dépendances.

    df -h
  4. 04

    Vérifier l’heure système

    Un décalage horaire affecte la validation des certificats, la durée de validité des jetons et le téléchargement des dépendances. Notez le fuseau et l’heure actuels, puis comparez-les aux horodatages du journal.

    date && systemsetup -gettimezone
  5. 05

    Figer les versions des outils de développement

    Notez les versions de Xcode, Command Line Tools, Ruby, Fastlane et du gestionnaire de paquets. Ne mettez pas plusieurs composants à niveau pendant la reproduction.

    xcodebuild -version
  6. 06

    Conserver la première erreur utile

    Recherchez la première erreur depuis le début de la tâche au lieu de ne capturer que la dernière ligne. L’échec final est souvent la conséquence d’une erreur en amont.

    tee build.log
Nouvelle vérification en ligne de commande

Utilisez le même jeu de commandes pour obtenir une sortie comparable

Les commandes suivantes couvrent la connexion SSH, le build Xcode et le processus Fastlane. Copiez-les, puis adaptez le scheme et le lane au projet. N’ajoutez pas de clé ni de jeton complet à un ticket public.

build-session · ssh / xcodebuild / fastlane
Connexion et référence de l’environnement
ssh -v vmrunner-node
sw_vers
date
df -h
xcode-select -p
xcodebuild -version
Reproduire un build Xcode
set -o pipefail
xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  clean build | tee xcodebuild.log
Extrait de sortie Fastlane
bundle exec fastlane beta --verbose | tee fastlane.log
grep -n -E "error:|failed|Exit status" fastlane.log
Xcode et signature

Distinguer échec de compilation, d’archivage et de signature

Une même pipeline peut enchaîner résolution des dépendances, compilation, tests, archivage et exportation. Identifiez d’abord l’étape en échec, puis vérifiez la configuration correspondante.

Certificats

Validité des certificats

Vérifiez que le certificat est visible dans le trousseau actuel, qu’il est valide et que la clé privée lui correspond correctement. Voir le nom du certificat ne garantit pas l’intégrité de la chaîne de signature.

security find-identity -v -p codesigning
Trousseau

Déverrouiller le trousseau

Les tâches non interactives doivent déverrouiller explicitement le trousseau indiqué dans la session Runner et confirmer que l’outil de signature peut accéder à la clé privée. N’inscrivez pas le mot de passe dans le dépôt ou les journaux de build.

security list-keychains -d user
Fichiers de description

Correspondance du fichier de description

Vérifiez le Bundle Identifier, le type de certificat, l’environnement cible et la couverture du fichier de description. Ne mélangez pas signature automatique et manuelle dans une même target.

xcodebuild -showBuildSettings
Cache

Nettoyer DerivedData

Ne nettoyez DerivedData que si l’erreur pointe vers un ancien index, un cache de modules ou des artefacts intermédiaires. Notez d’abord le chemin et le symptôme pour ne pas transformer un problème reproductible en incident intermittent.

xcodebuild clean
Consignez aussi le chemin des outils en ligne de commande

Exécutez également xcode-select -p et xcrun xcodebuild -version. Si l’interface graphique et Runner utilisent des chemins Xcode différents, un même projet peut produire des résultats différents.

Diagnostic CI/CD

Le démarrage de Runner ne garantit pas un environnement de tâche identique

Les problèmes d’intégration continue proviennent souvent des droits du compte, de la portée des variables d’environnement, de la propriété du cache, de conflits de concurrence ou du chemin de retour des artefacts. Vérifiez chaque point plutôt que de réenregistrer Runner.

AUTH

Droits de Runner

Confirmez que le compte d’exécution peut lire le dépôt, écrire dans le répertoire de travail, accéder au trousseau requis et lancer le script de build. Comparez l’identité du terminal interactif à celle du processus de service.

whoami
ENV

Variables d’environnement

Vérifiez que les variables sont injectées dans le job actuel et pas seulement présentes dans le shell de connexion. Affichez uniquement la liste des noms, jamais les valeurs dans les journaux.

env
CACHE

Répertoire de cache

Vérifiez que le cache des dépendances, DerivedData et le répertoire de build appartiennent au compte actuel. La clé de cache doit inclure la version des outils et le résumé du fichier de verrouillage pour éviter les réutilisations entre versions.

du -sh
JOBS

Tâches concurrentes

Vérifiez que les tâches ne partagent ni répertoire de travail, ni simulateur, ni nom de fichier de sortie, ni état du trousseau. Reproduisez d’abord avec une seule tâche, puis rétablissez progressivement la concurrence.

ps aux
ARTIFACT

Retour des artefacts de build

Vérifiez le chemin réel de l’archive, le code de sortie de l’envoi, les droits des fichiers et les règles de conservation. Si le build réussit sans produire d’artefact, commencez par vérifier si le script a réécrit le chemin.

find
Session distante

Distinguer les saccades d’affichage des performances de calcul du nœud

L’affichage distant dépend du réseau local, de l’encodage, de la résolution et de l’état de la session. Vérifiez d’abord que la tâche en ligne de commande s’exécute normalement, puis déterminez si le problème est limité à l’interface graphique.

01 · Latence

Établir une référence du réseau local

Mesurez la latence aller-retour, la gigue et la perte de paquets sur réseau filaire et sans fil. Recommencez après avoir fermé les synchronisations qui utilisent la bande passante montante, afin de ne pas confondre congestion locale et panne du nœud.

02 · Affichage

Réduire la résolution pour comparer

Réduisez d’abord la résolution et la fréquence de rafraîchissement, puis observez la latence d’entrée. Si le build en ligne de commande reste stable tandis que l’affichage saccade, examinez en priorité la liaison de session distante.

03 · Saisie

Vérifier la disposition du clavier

Confirmez la disposition du clavier local, le mappage des touches modificatrices et l’état de la méthode de saisie distante. En cas de raccourci anormal, testez d’abord dans un éditeur de texte brut.

04 · Session

Vérifier le verrouillage et la reconnexion

Vérifiez si la session d’origine est verrouillée ou déconnectée. Déconnectez-la proprement avant de vous reconnecter ; n’établissez pas plusieurs sessions graphiques utilisant le même bureau.

Envoyer une demande de support

Fournissez les six catégories d’informations pour permettre un diagnostic immédiat du ticket

Le support n’a pas besoin de votre clé privée. Fournissez les informations permettant d’associer la commande, de situer l’heure et de reproduire l’erreur, après anonymisation nécessaire.

Identifiant de commande
Numéro de commande vérifiable dans la console
Ville du nœud
Singapour, Japon (Tokyo), Corée du Sud (Séoul) ou Hong Kong
Heure de l’incident
Heure de début de l’incident et de la dernière reproduction, avec fuseau horaire
Étapes de reproduction
Indiquez la commande ou l’action de départ, puis listez les étapes clés dans l’ordre
Extrait du journal
Première erreur, code de sortie et sorties associées avant et après, après anonymisation
Résultat attendu
Décrivez le résultat attendu pour le build, la signature, la session ou la facturation
Escalade

Quand arrêter l’auto-diagnostic et contacter le support

Le point d’accès reste inaccessible

Vous avez vérifié les identifiants de la commande actuelle et effectué un test depuis un autre réseau, mais le port cible reste inaccessible.

La même tâche se reproduit systématiquement

Vous avez figé la version du code, les commandes et les versions des outils, mais l’erreur survient toujours à la même étape.

Le nœud ou le besoin de stockage évolue

Vous devez vérifier le choix du nœud, l’extension du stockage ou les limites de ressources de la tâche, mais les informations de la commande ne suffisent pas.

Les informations de facturation ne correspondent pas

L’identifiant de commande, la période de facturation ou l’historique de paiement ne correspondent pas à l’affichage de la console et nécessitent une vérification manuelle.

Commencer à utiliser

Besoin d’un nouveau nœud physique dédié ? Choisissez directement le modèle et la durée

Les trois configurations Apple Silicon sont disponibles à la journée, à la semaine, au mois ou au trimestre. Les centres de données de Singapour, du Japon (Tokyo), de Corée du Sud (Séoul) et de Hong Kong sont proposés ; la disponibilité réelle est celle affichée en temps réel dans la console.