GitHub Actions est une plateforme d'intégration continue et de livraison continue (CI/CD) qui vous permet d'automatiser votre pipeline de construction (build), de test et de déploiement. Vous pouvez créer des workflows qui construisent et testent chaque pull request de votre dépôt, ou déploient les pull requests fusionnées en production.
Dans ce laboratoire, vous allez créer votre premier workflow simple. Vous apprendrez la structure de répertoire standard requise par GitHub Actions, comment définir le nom du workflow, comment spécifier les événements qui déclenchent le workflow, et comment définir des tâches (jobs) pour exécuter des commandes.
Ce laboratoire s'appuie sur le dépôt que vous avez créé lors du laboratoire précédent. Vous allez cloner le dépôt github-actions-demo dans votre environnement LabEx et y ajouter votre premier fichier de workflow.
Créer un nouveau fichier YAML nommé hello-world.yml dans .github/workflows
Dans cette étape, vous allez cloner le dépôt que vous avez créé lors du laboratoire précédent et créer votre premier fichier de workflow.
Sur la page de votre dépôt GitHub pour github-actions-demo, cliquez sur le bouton vert Code.
Assurez-vous que l'onglet HTTPS est sélectionné et copiez l'URL. Elle devrait ressembler à https://github.com/your-username/github-actions-demo.git.
Ouvrez le terminal dans l'environnement LabEx. Le chemin par défaut est ~/project.
Utilisez la commande git clone pour télécharger le dépôt. Remplacez your-username par votre nom d'utilisateur GitHub réel.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
Exemple de sortie :
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
Naviguez dans le dépôt cloné :
cd ~/project/github-actions-demo
Le répertoire .github/workflows devrait déjà exister suite au laboratoire précédent. Vérifiez son existence :
ls -R .github
Créez un nouveau fichier nommé hello-world.yml à l'intérieur du répertoire .github/workflows. Ce fichier contiendra la configuration de notre workflow :
touch .github/workflows/hello-world.yml
Vous pouvez vérifier que le fichier a été créé avec succès :
ls -R .github
Vous devriez voir le répertoire workflows contenant à la fois main.yml (du laboratoire précédent) et hello-world.yml.
Ajouter la clé 'name' avec la valeur 'Hello World Workflow' au fichier YAML
Dans cette étape, vous allez commencer à modifier le fichier YAML pour définir votre workflow. Le premier élément que nous ajoutons habituellement est le name (nom) du workflow. Ce nom apparaîtra dans l'onglet Actions du dépôt GitHub, ce qui facilite son identification.
Ouvrez le fichier hello-world.yml en utilisant l'éditeur WebIDE. Vous pouvez trouver le fichier dans l'explorateur de fichiers sur le côté gauche, sous project/github-actions-demo/.github/workflows/.
Ajoutez le contenu suivant au fichier :
name: Hello World Workflow
Cette paire clé-valeur attribue un nom lisible par l'homme à votre workflow.
Après avoir ajouté le contenu, enregistrez le fichier (Ctrl+S ou Cmd+S).
Vous pouvez vérifier le contenu du fichier dans le terminal :
cat .github/workflows/hello-world.yml
Ajouter la clé 'on' avec l'événement 'push' pour déclencher lors des envois (pushes)
Dans cette étape, vous allez définir quand le workflow doit s'exécuter. Ceci est réalisé à l'aide du mot-clé on. Nous voulons que ce workflow s'exécute chaque fois que du code est poussé (pushed) vers le dépôt.
Ouvrez à nouveau .github/workflows/hello-world.yml et ajoutez les lignes suivantes sous la clé name :
on: [push]
Votre fichier devrait maintenant ressembler à ceci :
name: Hello World Workflow
on: [push]
La configuration on: [push] indique à GitHub Actions de déclencher ce workflow chaque fois qu'un git push est effectué sur n'importe quelle branche du dépôt.
Note : GitHub Actions prend en charge de nombreux autres événements de déclenchement. Par exemple :
pull_request : Se déclenche lorsqu'une pull request est ouverte, synchronisée ou fermée
workflow_dispatch : Permet un déclenchement manuel depuis l'onglet GitHub Actions
schedule : S'exécute selon un calendrier utilisant la syntaxe cron
release : Se déclenche lorsqu'une publication (release) est publiée
Et de nombreux autres événements comme issues, pull_request_review, etc.
Dans ce laboratoire, nous utilisons on: [push] car c'est le déclencheur le plus simple et le plus courant. Vous pourrez explorer d'autres types de déclencheurs à mesure que vous progresserez dans votre parcours avec GitHub Actions.
Enregistrez le fichier après avoir effectué les modifications.
Ajouter la section 'jobs' avec une tâche nommée 'build'
Dans cette étape, vous allez définir le travail réel que le workflow exécutera. Une exécution de workflow (workflow run) est composée d'un ou plusieurs jobs. Les jobs s'exécutent en parallèle par défaut.
Nous allons ajouter une section jobs contenant un seul job nommé build. Ce job s'exécutera sur un environnement Ubuntu et exécutera une commande simple.
Ajoutez le contenu suivant à votre fichier .github/workflows/hello-world.yml :
runs-on: ubuntu-latest : Spécifie le type de machine (runner) sur lequel le job doit s'exécuter.
steps: : Une liste des tâches à exécuter dans le job.
run: echo "Hello, World!" : Une commande shell à exécuter.
Votre fichier complet devrait maintenant ressembler à ceci :
name: Hello World Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Hello, World!"
Enregistrez le fichier.
Commiter et envoyer (push) le fichier de workflow en utilisant les commandes git
Dans cette étape, vous allez valider (commit) le nouveau fichier de flux de travail et le pousser (push) vers GitHub. Cela déclenchera le flux de travail que vous venez de créer.
Assurez-vous d'être dans le répertoire du dépôt :
cd ~/project/github-actions-demo
Vérifiez l'état de votre dépôt pour voir le fichier non suivi :
git status
Ajoutez le nouveau fichier à la zone de staging (staging area) :
git add .github/workflows/hello-world.yml
Validez les changements avec un message descriptif :
git commit -m "Add hello world workflow"
Exemple de sortie :
[main ... ] Add hello world workflow
1 file changed, X insertions(+), X deletions(-)
create mode 100644 .github/workflows/hello-world.yml
Poussez les changements vers le dépôt distant sur GitHub :
git push
Note sur l'authentification :
Lorsque vous exécutez git push, le WebIDE vous invitera automatiquement à vous authentifier. Suivez ces étapes détaillées :
Une fenêtre contextuelle apparaîtra avec le message : "The extension 'GitHub' wants to sign in using GitHub." Cliquez sur Allow.
Une nouvelle notification apparaîtra. Cliquez sur "Copy&Continue to GitHub", puis cliquez sur "Open" dans l'invite suivante.
Connectez-vous à votre compte GitHub dans la fenêtre du navigateur qui s'ouvre, et entrez le code d'autorisation qui a été copié. Après avoir confirmé l'autorisation, la page se fermera automatiquement.
Attendez quelques secondes, et vous verrez le terminal terminer avec succès l'opération de poussée (push).
Note sur la confidentialité : Le WebIDE demandera un accès complet à votre compte GitHub à des fins d'authentification. Vous n'avez pas à vous soucier des problèmes de confidentialité - la VM LabEx sera immédiatement détruite après avoir terminé le laboratoire actuel, et vos informations d'identification et d'autorisation ne seront pas conservées.
Ce processus d'authentification ne nécessite aucune configuration manuelle du nom d'utilisateur ou du Personal Access Token (Jeton d'Accès Personnel).
Après avoir suivi les étapes d'authentification, vous verrez une sortie similaire à ce qui suit :
Exemple de sortie :
Enumerating objects: X, done.
Counting objects: 100% (X/X), done.
Delta compression using up to 4 threads
Compressing objects: 100% (X/X), done.
Writing objects: 100% (X/X), XXX bytes | XXX.00 KiB/s, done.
Total X (delta X), reused X (delta X), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
XXXXXXX..XXXXXXX main -> main
Visitez votre dépôt sur GitHub dans un navigateur web et naviguez vers l'onglet Actions. Vous devriez voir le "Hello World Workflow" en cours d'exécution ou terminé.
Note : Lorsque vous poussez du code, plusieurs Actions peuvent être déclenchées si vous avez plusieurs fichiers de flux de travail dans votre dépôt. Veuillez identifier l'exécution de flux de travail correcte en vérifiant le nom du flux de travail dans la barre latérale gauche ou en utilisant la liste des exécutions de flux de travail sur le côté droit.
Cliquez sur l'exécution du flux de travail pour visualiser les journaux d'exécution détaillés. Vous verrez :
Le nom du flux de travail : "Hello World Workflow" en haut
Le nom du travail (job) : "build" dans la barre latérale gauche
L'exécution de l'étape (step) : Cliquez sur le travail "build" pour le développer, puis cliquez sur l'étape "Say Hello"
La sortie : Vous devriez voir la sortie Hello, World! affichée dans les journaux
Ceci vous donne une vue complète de la manière dont votre flux de travail s'est exécuté, y compris quelles étapes ont réussi et quelle sortie elles ont produite. Ceci est très utile pour le débogage et la compréhension de ce que fait votre flux de travail.
Résumé
Dans ce laboratoire, vous avez réussi à créer votre premier workflow GitHub Actions. Vous avez appris à :
Créer la structure de répertoire .github/workflows requise.
Définir un workflow en utilisant la syntaxe YAML.
Définir le name (nom) du workflow et les événements de déclenchement en utilisant on.
Définir des jobs (tâches) et des steps (étapes) pour exécuter des commandes.
Valider (commit) et envoyer (push) le workflow vers un dépôt.
Ce sont les éléments fondamentaux pour créer des pipelines CI/CD complexes capables de construire, tester et déployer votre logiciel automatiquement.