[go: up one dir, main page]

Skip to main content

Workflows réutilisables

Découvrez comment éviter les doublons quand vous créez un workflow en réutilisant des workflows existants.

À propos des 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 graphique des dépendances ».

Flux de travail réutilisables versus actions composites

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

Comparons certains aspects de chaque solution :

  • Travaux de flux de travail : les actions composites contiennent une série d'étapes qui sont exécutées en tant qu'étape unique dans le flux de travail de l'appelant. Contrairement aux flux de travail réutilisables, ils ne peuvent pas contenir de tâches.
  • Journalisation – Lorsqu'une action composite est exécutée, le journal n'affiche que l'étape du flux de travail de l'appelant qui a exécuté l'action composite, et non les étapes individuelles de l'action composite. Avec les flux de travail réutilisables, chaque tâche et chaque étape sont journalisées séparément.
  • Spécification des exécutants – Les flux de travail réutilisables contiennent un ou plusieurs travaux. Comme pour tous les travaux de flux de travail, les travaux d'un flux de travail 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 flux de travail appelant, vous devez utiliser un flux de travail 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'une tâche de flux de travail, 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 à une tâche après avoir appelé un flux de travail réutilisable, de sorte que vous ne pouvez pas utiliser GITHUB_ENV pour transférer des valeurs aux étapes suivantes du flux de travail de l'appelant.

Principales différences entre les flux de travail réutilisables et les actions composites

Workflows réutilisablesActions composites
Un fichier YAML, très similaire à n'importe quel fichier de flux de travail standardUne action contenant un ensemble d'étapes du flux de travail
Chaque flux de travail réutilisable est un fichier unique dans le répertoire .github/workflows d'un référentiel.Chaque action composite est un référentiel 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 référentiel ou un répertoire dans lequel l’action est définie
Appelé directement dans une tâche, pas à partir d’une étapeExécuter en tant qu’étape dans une tâche
Peut contenir plusieurs tâchesNe contient pas de tâches
Chaque étape est journalisée en temps réelJournalisé en une seule étape, même s’il contient plusieurs étapes
Peut connecter un maximum de quatre niveaux de flux de travailPeut être imbriqué pour avoir jusqu’à 10 actions composites dans un flux de travail
Peut utiliser des secretsNe pas utiliser des secrets

Workflows réutilisables et 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 les utilisateurs créent un nouveau workflow, ils peuvent choisir un modèle de workflow et une partie ou la totalité du travail d’écriture du workflow sera effectuée pour eux. Dans un modèle de workflow, vous pouvez également référencer des workflows réutilisables afin de faciliter la réutilisation du 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 offre des modèles de flux de travail pour une variété de langues et d'outils. Lorsque vous configurez des flux de travail dans votre référentiel, GitHub analyse le code dans votre référentiel et recommande des flux de travail basés sur le langage et le framework de votre référentiel. Par exemple, si vous utilisez Node.js, GitHub suggérera un fichier modèle de flux de travail qui installe vos paquets Node.js et exécute vos tests. Vous pouvez effectuer des recherches et 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 :

  • 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 flux de travail, consultez Reuse workflows.

Pour trouver des informations sur les complexités de la réutilisation des flux de travail, consultez Référence des flux de travail réutilisables.