Skip to main content

Publication et gestion des actions

Vous pouvez tirer parti de l’automatisation et des bonnes pratiques open source pour la mise en production et la gestion des actions.

Introduction

AprĂšs avoir crĂ©Ă© une action, vous souhaiterez probablement publier d’autres fonctionnalitĂ©s tout en utilisant les contributions de la communautĂ©. Ce tutoriel dĂ©crit un exemple de processus que vous pouvez suivre pour publier et gĂ©rer des actions open source. L'exemple :

  • Tire parti de GitHub Actions pour l’intĂ©gration continue, les mises Ă  jour des dĂ©pendances, la gestion des mises en production et l’automatisation des tĂąches.
  • Garantit la confiance grĂące aux tests automatisĂ©s et aux badges de build.
  • Indique comment l’action peut ĂȘtre utilisĂ©e, idĂ©alement dans le cadre d’un workflow plus Ă©tendu.
  • Signale le type de contributions de la communautĂ© qui sont les bienvenues. (par exemple : problĂšmes, demandes de tirage (pull request) ou rapports sur les vulnĂ©rabilitĂ©s)

Pour obtenir un exemple d’application de ce processus, consultez actions/javascript-action.

DĂ©veloppement et publication des actions

Dans cette section, nous allons aborder un exemple de processus de dĂ©veloppement et de publication d’actions, et nous verrons comment utiliser GitHub Actions pour automatiser le processus.

À propos des actions JavaScript

Les actions JavaScript sont des dépÎts Node.js contenant des métadonnées. Toutefois, les actions JavaScript ont des propriétés supplémentaires par rapport aux projets Node.js traditionnels :

  • Les packages dĂ©pendants sont commitĂ©s en mĂȘme temps que le code, gĂ©nĂ©ralement dans un format compilĂ© et minifiĂ©. Cela signifie que les builds automatisĂ©es et les contributions sĂ©curisĂ©es de la communautĂ© sont importantes.

  • Les versions Ă©tiquetĂ©es peuvent ĂȘtre publiĂ©es directement dans GitHub Marketplace et consommĂ©es par les workflows dans GitHub.

  • De nombreuses actions utilisent les API de GitHub et les API tierces. Nous encourageons donc Ă  effectuer des tests robustes de bout en bout.

Configuration des workflows GitHub Actions

Pour prendre en charge le processus de développement dans la section suivante, ajoutez deux workflows GitHub Actions à votre dépÎt :

  1. Ajoutez un workflow qui se dĂ©clenche lorsqu’un commit est poussĂ© (push) Ă  une branche de fonctionnalitĂ© ou Ă  main, ou lorsqu’une demande de tirage (pull request) est crĂ©Ă©e. Configurez le workflow pour exĂ©cuter vos tests unitaires et vos tests d’intĂ©gration. Pour obtenir un exemple, consultez ce workflow.
  2. Ajoutez un workflow qui se dĂ©clenche lorsqu’une version est publiĂ©e ou modifiĂ©e. Configurez le workflow de sorte que les Ă©tiquettes sĂ©mantiques soient en place. Vous pouvez utiliser une action comme JasonEtco/build-and-tag-action pour compiler et regrouper le fichier JavaScript et les mĂ©tadonnĂ©es, et pour pousser les Ă©tiquettes sĂ©mantiques des versions majeures, mineures et correctives. Pour plus d’informations sur les Ă©tiquettes sĂ©mantiques, consultez « À propos de la gestion sĂ©mantique de version ».

Exemple de processus de développement

Voici un exemple de processus que vous pouvez suivre pour exécuter automatiquement des tests, créer une version , la publier dans GitHub Marketplace, puis publier votre action.

  1. Effectuez le travail relatif aux fonctionnalitĂ©s dans les branches de chaque flux GitHub. Pour plus d’informations, consultez « GitHub flow ».

    • Chaque fois qu’un commit est poussĂ© vers la branche de fonctionnalitĂ©, votre workflow de test exĂ©cute automatiquement les tests.
  2. CrĂ©ez des demandes de tirage pour la branche main afin de lancer une discussion et une rĂ©vision, et d’effectuer une fusion lorsque vous ĂȘtes prĂȘt.

    • Lorsqu’une demande de tirage est effectuĂ©e Ă  partir d’une branche ou d’une duplication (fork), votre workflow de test rĂ©exĂ©cute les tests, cette fois avec le commit de fusion.

    • Remarque : Pour des raisons de sĂ©curitĂ©, les workflows dĂ©clenchĂ©s par pull_request Ă  partir de duplications ont des autorisations GITHUB_TOKEN limitĂ©es et n’ont pas accĂšs aux secrets. Si vos tests ou d’autres workflows dĂ©clenchĂ©s lors de la demande de tirage nĂ©cessitent un accĂšs aux secrets, utilisez un autre Ă©vĂ©nement comme un dĂ©clencheur manuel ou un pull_request_target. Pour plus d’informations, consultez « ÉvĂ©nements qui dĂ©clenchent des flux de travail ».

  3. CrĂ©ez une version Ă©tiquetĂ©e sĂ©mantiquement. Vous pouvez Ă©galement publier dans GitHub Marketplace avec une simple case Ă  cocher. Pour plus d’informations, consultez « Gestion des mises en production dans un rĂ©fĂ©rentiel » et « Publication d’actions dans GitHub Marketplace ».

    • Lorsqu’une version est publiĂ©e ou modifiĂ©e, votre workflow de version s’occupe automatiquement de la compilation et de l’ajustement des Ă©tiquettes.

    • Nous vous recommandons de crĂ©er des versions Ă  l’aide d’étiquettes versionnĂ©es sĂ©mantiquement (par exemple v1.1.3) et de maintenir Ă  jour les Ă©tiquettes des versions majeures (v1) et mineures (v1.1) Ă  l’aide du dernier commit appropriĂ©. Pour plus d’informations, consultez « À propos des actions personnalisĂ©es » et « À propos du contrĂŽle de version sĂ©mantique ».

RĂ©sultats

Contrairement Ă  d’autres stratĂ©gies automatisĂ©es de gestion des mises en production, ce processus choisit intentionnellement de ne pas commiter les dĂ©pendances dans la branche main, mais seulement les commits des versions Ă©tiquetĂ©es. Ainsi, vous encouragez les utilisateurs de votre action Ă  rĂ©fĂ©rencer des Ă©tiquettes nommĂ©es ou des sha, et vous contribuez Ă  garantir la sĂ©curitĂ© des demandes de tirage tierces en effectuant la gĂ©nĂ©ration vous-mĂȘme lors du processus de publication.

Avec l’utilisation des versions sĂ©mantiques, les utilisateurs de vos actions peuvent Ă©pingler leurs workflows Ă  une version et savoir ainsi qu’ils continueront Ă  recevoir les derniĂšres fonctionnalitĂ©s stables et non cassantes, selon leur niveau de confort.

Collaborer avec la communauté

GitHub Enterprise Cloud fournit des outils et des guides qui vous aideront à travailler avec la communauté open source. Voici quelques outils que nous vous recommandons de configurer pour une bonne communication bidirectionnelle. En envoyant les signaux suivants à la communauté, vous encouragez les autres à utiliser, modifier et contribuer à votre action :

Pour aller plus loin

Voici quelques exemples oĂč des modĂšles similaires sont utilisĂ©s :