Skip to main content

Réutilisation des configurations de flux de travail

Découvrez comment éviter les duplications lors de la création d’un flux de travail.

Workflows réutilisables

Au lieu de copier et de coller d’un workflow vers un autre, vous pouvez rendre les workflows réutilisables. Vous et toute personne ayant accès au workflow réutilisable peut alors appeler le workflow réutilisable à partir d’un autre workflow.

La réutilisation de workflows évite la duplication. Cela facilite la maintenance des workflows et vous permet de créer plus rapidement de nouveaux workflows en s’appuyant sur le travail des autres, comme vous le faites avec des actions. La réutilisation des workflows favorise également les bonnes pratiques en vous aidant à utiliser des workflows bien conçus, qui ont déjà été testés et qui se sont avérés efficaces. Votre organisation peut créer une bibliothèque de workflows réutilisables qui peuvent être gérés de manière centralisée.

Le diagramme ci-dessous montre une exécution de flux de travail en cours qui utilise un workflow réutilisable.

  • Une fois que chacun des trois travaux de build à gauche du diagramme se termine avec succès, un travail dépendant appelé « Déployer » est exécuté.
  • Le travail « Déployer » appelle un workflow réutilisable qui contient trois travaux : « Préproduction », « Révision » et « Production ».
  • Le travail de déploiement « Production » s’exécute uniquement une fois que le travail « Préproduction » s’est correctement terminé.
  • Quand un travail cible un environnement, l’exécution du workflow affiche une barre de progression qui indique le nombre d’étapes du travail. Dans le diagramme ci-dessous, le travail « Production » contient 8 étapes, l’étape 6 étant en cours de traitement.
  • L’utilisation d’un workflow réutilisable pour exécuter des travaux de déploiement vous permet d’exécuter ces travaux pour chaque build sans dupliquer du code dans les workflows.

Schéma d’un workflow appelant un workflow réutilisable.

Un workflow qui utilise un autre workflow est appelé workflow « appelant ». Le workflow réutilisable est workflow « appelé ». Un workflow appelant peut utiliser plusieurs workflows appelés. Chaque workflow appelé est référencé sur une seule ligne. Le résultat est que le workflow appelant peut ne contenir que quelques lignes de code YAML, mais effectuer un grand nombre de tâches quand il est exécuté. Lorsque vous réutilisez un workflow, l’ensemble du workflow appelé est utilisé, comme s’il faisait partie du workflow appelant.

Si vous réutilisez un workflow d’un autre dépôt, toutes les actions du workflow appelé s’exécutent comme si elles faisaient partie du workflow appelant. Par exemple, si le workflow appelé utilise actions/checkout, l’action extrait le contenu du dépôt qui héberge le workflow appelant, et non le workflow appelé.

Vous pouvez afficher les workflows réutilisés référencés dans vos workflows GitHub Actions en tant que dépendances dans le graphique des dépendances du dépôt contenant vos workflows. Pour plus d’informations, consultez « À propos du graphe des dépendances ».

Workflows réutilisables versus actions composites

Les workflows réutilisables et les actions composites vous permettent d'éviter de dupliquer le contenu des workflows. Alors que les workflows réutilisables vous permettent de réutiliser un workflow entier, avec plusieurs travaux et étapes, les actions composites combinent plusieurs étapes que vous pouvez ensuite exécuter en une étape de travail, comme toute autre action.

Comparons certains aspects de chaque solution :

  •           **Travaux de workflow** : les actions composites contiennent une série d'étapes qui sont exécutées en tant qu'étape unique dans le workflow de l'appelant. Contrairement aux workflows réutilisables, elles ne peuvent pas contenir de travaux.
    
  •           **Journalisation** : lorsqu'une action composite est exécutée, le journal n'affiche que l'étape du workflow de l'appelant qui a exécuté l'action composite, et non les étapes individuelles de l'action composite. Avec les workflows réutilisables, chaque travail et chaque étape sont journalisées séparément.
    
  •           **Spécification des exécutants** : les workflows réutilisables contiennent un ou plusieurs travaux. Comme pour tous les travaux de workflow, les travaux d'un workflow réutilisable spécifient le type de machine sur laquelle le travail sera exécuté. Par conséquent, si les étapes doivent être exécutées sur un type de machine qui peut être différent de la machine choisie pour le travail de workflow appelant, vous devez utiliser un workflow réutilisable, et non une action composite.
    
  •           **Transfert des résultats aux étapes** : une action composite est exécutée en tant qu'étape au sein d'un travail de workflow, et vous pouvez avoir plusieurs étapes avant ou après l'étape qui exécute l'action composite. Les workflows réutilisables sont appelés directement au sein d’un travail, et non à partir d’une étape de travail. Il n'est pas possible d'ajouter des étapes à un travail après avoir appelé un workflow réutilisable, de sorte que vous ne pouvez pas utiliser `GITHUB_ENV` pour transférer des valeurs aux étapes suivantes du workflow de l'appelant.
    

Principales différences entre les workflows réutilisables et les actions composites

Workflows réutilisablesActions composites
Un fichier YAML, très similaire à n'importe quel fichier de workflow standardUne action contenant un ensemble d'étapes de workflow
Chaque workflow réutilisable est un fichier unique dans le répertoire .github/workflows d'un dépôtChaque action composite est un dépôt distinct, ou un répertoire, contenant un fichier action.yml et, éventuellement, d'autres fichiers
Appelé en référençant un fichier YAML spécifiqueAppelé en référençant un dépôt ou un répertoire dans lequel l'action est définie
Appelé directement dans un travail, pas à partir d'une étapeExécuté en tant qu'étape dans un travail
Peut contenir plusieurs travauxNe contient pas de travaux
Chaque étape est journalisée en temps réelJournalisé en une seule étape, même si plusieurs étapes sont contenues
Il est possible de connecter un maximum de quatre niveaux de flux de travailImbrication possible pour avoir jusqu'à 10 actions composites dans un workflow
Peut utiliser des secretsNe peux pas utiliser des secrets
Impossible de publier sur la Place de marchéPeut être publié sur la Place de marché

Modèles de workflow

Les modèles de workflow permettent à tous les membres de votre organisation disposant de l’autorisation de créer des workflows de le faire plus rapidement et plus facilement. Lorsque des utilisateurs créent un workflow, ils peuvent choisir un modèle de workflow, et tout ou partie du travail d'écriture du workflow sera effectué automatiquement. Dans un modèle de workflow, vous pouvez également référencer des workflows réutilisables pour permettre aux utilisateurs de tirer facilement parti de la réutilisation de code de workflow géré de manière centralisée.

Si vous utilisez un SHA de commit lors du référencement du workflow réutilisable, vous garantissez que tous ceux qui réutilisent ce workflow utiliseront toujours le même code YAML. Toutefois, si vous référencez un workflow réutilisable par une étiquette ou une branche, assurez-vous que vous pouvez approuver cette version du workflow. Pour plus d’informations, consultez « Informations de référence sur l’utilisation sécurisée ».

GitHub propose des modèles de workflow pour divers langages et outils. Lorsque vous configurez des workflows dans votre dépôt, GitHub analyse le code de votre dépôt et recommande des workflows basés sur le langage et le framework de votre dépôt. Par exemple, si vous utilisez Node.js,GitHub suggère un fichier de modèle de workflow qui installe vos packages Node.js et exécute vos tests. Vous pouvez effectuer des recherches et appliquer des filtres pour trouver des modèles de workflow pertinents.

GitHub fournit des modèles de workflows prêts à l’emploi pour les catégories de haut niveau suivantes :

  • Déploiement (CD) . Pour plus d’informations, consultez « Déploiement continu ».

  • Intégration continue (CI) . Pour plus d’informations, consultez « Intégration continue ».

  • Automatisation. Les modèles de workflows d’automatisation offrent des solutions pour automatiser les workflows, comme le triage des demandes de tirage (pull requests) et l’application d’une étiquette en fonction des chemins d’accès qui sont modifiés dans la demande de tirage ou l’accueil des utilisateurs qui sont contributeurs au référentiel pour la première fois.

Utilisez ces workflows comme point de départ pour générer votre propre workflow ou utilisez-les tels quels. Vous pouvez parcourir la liste complète des modèles de flux de travail dans le référentiel actions/starter-workflows.

Pour plus d’informations, consultez « Création de modèles de workflow pour votre organisation ».

Étapes suivantes

Pour commencer à réutiliser vos workflows, consultez Réutiliser des workflows.

Pour vous pencher sur les subtilités de la réutilisation des workflows, consultez Réutilisation des configurations de flux de travail.