Fermer

juillet 1, 2021

Introduction aux actions GitHub


Les actions GitHub vous permettent d'automatiser votre tâche de développement, vous permettant de créer des pipelines CI/CD ou de trier automatiquement les problèmes GitHub. Dans cet article, vous découvrirez les éléments constitutifs des actions tout en créant deux flux de travail de base à titre d'exemples.

GitHub est en train de devenir une plate-forme tout-en-un où les développeurs créent, maintiennent et livrent leurs logiciels. Vous pouvez l'utiliser principalement comme outil de gestion de code collaboratif pour votre logiciel. Mais aujourd'hui, vous disposez de fonctionnalités telles que :

  • Codespacesun environnement de développement basé sur le cloud qui vous permet de créer, d'exécuter et de déboguer votre code dans le cloud
  • Actionsune plate-forme d'automatisation qui vous permet pour automatiser votre workflow de développement

Je vais me concentrer sur les actions GitHub dans cet article. Ce sera une introduction de base au concept des actions GitHub pour les développeurs de tous niveaux. Je vais commencer par une action simple qui imprime du texte, puis terminer par un flux de travail Actions qui exécutera le script de test d'une application Node.js.

Qu'est-ce que les actions GitHub ?

Les actions GitHub sont un plate-forme d'automatisation pilotée par événement qui vous permet d'exécuter une série de commandes après qu'un événement spécifié s'est produit. Par exemple, lorsqu'une validation est effectuée dans votre branche de staging et que vous souhaitez générer, tester puis déployer les modifications dans votre environnement de staging. Avec Actions, vous pouvez automatiser des tâches au sein de votre cycle de développement, le tout dans GitHub.

Un cas d'utilisation courant pour Actions est l'intégration et le déploiement continus automatisés, et vous pouvez demander si vous avez besoin de connaître encore un autre outil CI/CD, ou lequel est mieux. GitHub Actions est bien plus qu'un outil CI/CD. Vous pouvez l'utiliser pour automatiser n'importe quelle tâche en fonction de tout événement lié à votre projet GitHub. Il peut s'agir d'événements liés aux problèmes GitHub pour lesquels vous souhaitez trier automatiquement les problèmes et les étiqueter, ou bloquer les demandes d'extraction qui ne font référence à aucun problème existant. C'est plus un outil d'automatisation qu'un outil CI/CD.

Vos premières actions GitHub Hello World

Nous allons créer un workflow d'actions simple qui peut être invoqué manuellement ou exécuté automatiquement pour chaque commit poussé vers le branche principale. Les actions GitHub sont stockées dans votre référentiel, dans un répertoire appelé .github/workflowset elles sont définies à l'aide de la syntaxe YAML.

Pour commencer, forkez et clonez ce dépôt sur GitHub . Créez le répertoire .github/workflowspuis ajoutez un nouveau fichier hello-world-actions.yml et collez-y le code ci-dessous.




name: Bonjour-Monde-Actions


sur :
  
  push :
    branches : [main]

  
  workflow_dispatch :


jobs[19659013]:
  
  say_hello:
    
    runs-on: ubuntu-dernier

    
    étapes :
      
      - nom : Dites bonjour
        run: echo Bonjour tout le monde !

      
      - nom : Dis au revoir
        run: |
          echo Job Finished.
          echo Au revoir !

Décomposons le contenu de ce fichier pour vous aider à comprendre le composant des actions GitHub. Mais avant cela, validez et transmettez cette modification à la branche amont.

Workflow

Le fichier que vous avez ajouté représente un workflow. Un workflow est un processus automatisé configurable composé d'une ou plusieurs tâches et peut être planifié ou déclenché par un événement. Un workflow peut être utilisé pour créer, tester, packager, publier ou déployer un projet.

GitHub affiche le nom de votre workflow sur la page Actions de votre référentiel. Vous pouvez définir le nom à l'aide de la clé name dans votre fichier YAML et, s'il est omis, GitHub le définit sur le chemin du fichier relatif à la racine du référentiel. Dans l'exemple ci-dessus, nous avons spécifié le nom comme Hello-World-Actions.

Events

Un workflow peut être déclenché manuellement ou en réponse à des événements spécifiques. Pour spécifier les événements qui déclenchent un workflow, vous utilisez le mot clé on.

on:
  push:
    branches: [main]

  workflow_dispatch:

Cet exemple exécute le workflow sur push vers la branche principale et peut être déclenché manuellement à partir de la page Actions car nous avons spécifié workflow_dispatch.[19659054]Tâches, coureurs et étapes

Une exécution de workflow est composée d'une ou plusieurs tâches. Dans notre exemple, nous avons un seul travail nommé say_hello. Un travail est un ensemble d'étapes qui exécutent une série de commandes, à l'aide du programme d'exécution spécifié.

Un programme d'exécution est un serveur sur lequel l'application d'exécution GitHub Actions est installée. Il écoute les tâches disponibles, exécute une tâche à la fois et rapporte la progression, les journaux et les résultats à GitHub. Vous pouvez héberger votre propre coureur ou utiliser des coureurs hébergés sur GitHub. Dans notre exemple, nous utilisons le programme d'exécution Ubuntu.

runs-on: ubuntu-latest

Après avoir spécifié le coureur, vous spécifiez les étapes avec les commandes à exécuter.

steps:
    
    - name: Dites bonjour
        run: echo Bonjour tout le monde !

    
    - nom: Dis au revoir
        run: |
          echo Job Finished.
          echo Au revoir !

Le mot-clé run indique au travail d'exécuter une commande sur le lanceur. Dans ce cas, exécutez la commande echo avec les valeurs spécifiées.

Affichage de l'activité de workflow

Avec les modifications que vous avez apportées, chaque fois que vous appliquez une modification à la branche main , il exécutera ce workflow. Puisque vous avez déjà poussé la modification vers GitHub, vous devriez avoir exécuté votre workflow. Vous verrez les exécutions de workflow sur la page Actions sur GitHub. Vous pouvez voir un graphique visuel de la progression de chaque exécution, et également explorer les détails de chaque étape.

Suivez les instructions ci-dessous pour voir les exécutions de workflow :

  1. Ouvrez GitHub et accédez à la page principale de votre référentiel.
  2. Vous trouverez l'onglet Actions après Pull request. Cliquez sur Actions pour ouvrir la page Actions.
  3. Vous devriez voir le flux de travail répertorié dans la barre latérale gauche et l'exécution du flux de travail répertoriée sur la page principale. Cliquez sur l'une des exécutions de workflow pour lesquelles vous souhaitez obtenir plus d'informations sur son exécution.

Tous les workflows affichent 1 exécution de workflow : Merge pull request #1 from pmanugo/hello-world...

 Détails du travail pour say_hello. Quatre étapes - travail de configuration, dire bonjour, dire au revoir, travail terminé. Tous sont réduits, à l'exception de dire au revoir, qui affiche 1 exécution de tâche d'écho terminée (réduit). 5 Travail terminé. 6 Au revoir !.

Créez un flux de travail pour exécuter des tests

 Bien que vous puissiez créer votre propre flux de travail et vos propres actions à partir de zéro, il existe des contributions de la communauté que vous pouvez utiliser et personnaliser. Le marché GitHub est un emplacement central pour vous permettre de trouver des actions créées par la communauté GitHub. Nous allons créer un nouveau workflow qui exécutera le test dans le projet. Pour cela, nous utiliserons l'interface GitHub pour créer un workflow en utilisant l'un des modèles suggérés ; puis, dans le workflow, vous utiliserez une action publique pour configurer Node.js.

Ouvrez GitHub et cliquez sur l'onglet Actions afin d'ouvrir la page des actions. Dans la barre latérale gauche, cliquez sur le bouton Nouveau workflow. Une page vous sera présentée contenant des suggestions de modèles que vous pouvez modifier pour créer un flux de travail. Cliquez sur le bouton Configurer ce flux de travail dans la carte de modèle de flux de travail Node.js.

Les flux de travail créés pour votre référentiel JavaScript (suggéré) ont trois cartes : Publier Node.js Package, Node.js , Déno. Node.js est entouré d'un carré rouge, avec une flèche rouge pointant sur son bouton "Configurer ce flux de travail".

Cela ouvre l'éditeur de flux de travail avec le fichier pré-rempli avec les tâches et les étapes. Remplacez le nom du fichier par test.yml. Ce fichier est similaire à celui que vous avez vu précédemment mais avec quelques nouvelles syntaxes. Aux lignes 17 et 18, vous remarquez les mots clés strategy et matrix.

strategy:
  matrix:
    node-version[19659013]: [10.x, 12.x, 14.x, 15.x]

Le La stratégie crée une matrice de construction pour les tâches, de sorte que votre tâche s'exécutera avec les variantes spécifiées. Dans cet exemple, le travail spécifié s'exécutera plusieurs fois pour les versions Node.js spécifiées dans le tableau. Nous ne voulons pas utiliser Node.js 10.x ; par conséquent, nous mettrons à jour la ligne 19 comme suit :

node-version : [12.x, 14.x, 15.x, 16.x]

Vous remarquerez l'utilisation du mot-clé uses dans ce workflow. C'est un moyen de spécifier les actions que vous souhaitez exécuter pour l'étape. Une action est un ensemble réutilisable de commandes qui peuvent être définies dans le même référentiel que le workflow, un référentiel public ou une image Docker. Vous pouvez créer vos propres actions ou utiliser des actions créées par la communauté GitHub.

L'instruction uses: actions/checkout@v2 indique au travail de récupérer v2 de l'action de communauté nommée actions/checkout@v2. Il s'agit d'une action qui extrait votre référentiel à une version particulière, puis le télécharge sur le coureur. Cela vous permet d'exécuter des actions sur votre code, et vous pouvez utiliser cette action à chaque fois que votre workflow s'exécutera sur le code du référentiel.

L'action actions/setup-node@v2 installe le Progiciel Node sur le runner, vous donnant ainsi accès aux commandes node et npm.

Le reste de la commande exécute npm pour installer les dépendances du projet, puis exécutez le script test.

Commit and push ces modifications et observez le workflow exécuté sur la page Actions.

Node CI Workflow Run" title="Node CI Workflow Run"/></p data-recalc-dims=

Wrap-up

GitHub Actions est un ajout intéressant à la suite de fonctionnalités disponibles sur GitHub. Il vous permet d'automatiser vos tâches de développement et de visualiser comment ces tâches s'exécutent, le tout dans GitHub. Il peut être utilisé pour automatiser les tâches CI/CD ou automatiser la façon dont vous triez les problèmes ou l'étiquetage des demandes d'extraction. es en tant que moteur de workflow sans serveur, avec le code d'automatisation conservé avec le code de l'application. Le marché GitHub est l'endroit où vous pouvez trouver des actions pour des tâches courantes telles que la création et la publication d'une image Docker, et vous pouvez également créer et partager vos actions sur le marché.

Essayez-le et laissez-moi savoir comment Actions a fonctionné pour vous en laissant un commentaire ici ou en m'envoyant un DM sur Twitter.






Source link