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 :
- 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. - 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.
-
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.
-
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 autorisationsGITHUB_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 unpull_request_target
. Pour plus dâinformations, consultez « ĂvĂ©nements qui dĂ©clenchent des flux de travail ».
-
-
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 :
- GĂ©rez un fichier
README
avec un grand nombre dâexemples dâutilisation et de conseils. Pour plus dâinformations, consultez « à propos des README ». - Incluez un badge dâĂ©tat de workflow dans votre fichier
README
. Pour plus dâinformations, consultez « Adding a workflow status badge ». Consultez Ă©galement shields.io pour en savoir plus sur les autres badges que vous pouvez ajouter. - Ajoutez des fichiers dâintĂ©gritĂ© de la communautĂ© comme
CODE_OF_CONDUCT
,CONTRIBUTING
etSECURITY
. Pour plus dâinformations, consultez « CrĂ©ation dâun fichier dâintĂ©gritĂ© de la communautĂ© par dĂ©faut ». - Maintenez Ă jour lâĂ©tat des problĂšmes en utilisant des actions comme actions/stale.
Pour aller plus loin
Voici quelques exemples oĂč des modĂšles similaires sont utilisĂ©s :