expo-cicd-workflows

Par expo · skills

Aide à comprendre et rédiger des fichiers YAML de workflow EAS pour les projets Expo. Utilisez cette skill lorsque l'utilisateur pose des questions sur le CI/CD ou les workflows dans un contexte Expo ou EAS, mentionne `.eas/workflows/`, ou souhaite de l'aide avec les pipelines de build EAS ou l'automatisation du déploiement.

npx skills add https://github.com/expo/skills --skill expo-cicd-workflows

Compétence EAS Workflows

Aide les développeurs à écrire et modifier les fichiers YAML de workflow CI/CD EAS.

Documentation de référence

Récupérez ces ressources avant de générer ou valider des fichiers de workflow. Utilisez le script de récupération (implémenté avec Node.js) dans le répertoire scripts/ de cette compétence ; il met en cache les réponses en utilisant les ETags pour plus d'efficacité :

# Récupérer les ressources
node {baseDir}/scripts/fetch.js <url>
  1. JSON Schemahttps://api.expo.dev/v2/workflows/schema

    • IL EST NÉCESSAIRE de récupérer ce schéma
    • Source de vérité pour la validation
    • Tous les types de jobs et leurs paramètres requis/optionnels
    • Types de déclencheurs et configurations
    • Types de runners, images VM et tous les énumérations
  2. Documentation de syntaxehttps://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx

    • Aperçu de la syntaxe YAML du workflow
    • Exemples et explications en anglais
    • Syntaxe des expressions et contextes
  3. Jobs pré-packagéshttps://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx

    • Documentation pour les types de jobs pré-packagés supportés
    • Paramètres spécifiques aux jobs et résultats

Ne vous fiez pas aux valeurs mémorisées ; ces ressources évoluent à mesure que de nouvelles fonctionnalités sont ajoutées.

Emplacement du fichier de workflow

Les workflows se trouvent dans .eas/workflows/*.yml (ou .yaml).

Structure de haut niveau

Un fichier de workflow possède ces clés de haut niveau :

  • name — Nom d'affichage du workflow
  • on — Déclencheurs qui lancent le workflow (au moins un requis)
  • jobs — Définitions des jobs (requis)
  • defaults — Valeurs par défaut partagées pour tous les jobs
  • concurrency — Contrôler les exécutions parallèles de workflow

Consultez le schéma pour la spécification complète de chaque section.

Expressions

Utilisez la syntaxe ${{ }} pour les valeurs dynamiques. Le schéma définit les contextes disponibles :

  • github.* — Informations sur le repository GitHub et l'événement
  • inputs.* — Valeurs des entrées workflow_dispatch
  • needs.* — Résultats et statut des jobs dépendants
  • jobs.* — Résultats des jobs (syntaxe alternative)
  • steps.* — Résultats des étapes au sein des jobs personnalisés
  • workflow.* — Métadonnées du workflow

Générer des workflows

Lors de la génération ou de la modification de workflows :

  1. Récupérez le schéma pour obtenir les types de jobs actuels, paramètres et valeurs autorisées
  2. Validez que les champs requis sont présents pour chaque type de job
  3. Vérifiez que les références de jobs dans needs et after existent dans le workflow
  4. Vérifiez que les expressions référencent des contextes et résultats valides
  5. Assurez-vous que les conditions if respectent les contraintes de longueur du schéma

Validation

Après avoir généré ou modifié un fichier de workflow, validez-le par rapport au schéma :

# Installer les dépendances si manquantes
[ -d "{baseDir}/scripts/node_modules" ] || npm install --prefix {baseDir}/scripts

node {baseDir}/scripts/validate.js <workflow.yml> [workflow2.yml ...]

Le validateur récupère le dernier schéma et vérifie la structure YAML. Corrigez les erreurs signalées avant de considérer le workflow comme complet.

Répondre aux questions

Lorsque les utilisateurs posent des questions sur les options disponibles (types de jobs, déclencheurs, types de runners, etc.), récupérez le schéma et dérivez la réponse de celui-ci plutôt que de vous fier à des informations potentiellement obsolètes.

Skills similaires