Exécution de Commandes Simples avec GitHub Actions

GitBeginner
Pratiquer maintenant

Introduction

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 flux de travail (workflows) qui construisent et testent chaque pull request de votre dépôt, ou qui déploient les pull requests fusionnées en production.

Un workflow est un processus automatisé configurable qui exécutera un ou plusieurs jobs. Les workflows sont définis par un fichier YAML déposé dans votre dépôt et s'exécuteront lorsqu'ils sont déclenchés par un événement dans votre dépôt, ou ils peuvent être déclenchés manuellement ou selon un calendrier défini.

Dans ce laboratoire, vous apprendrez les éléments fondamentaux d'un workflow GitHub Actions :

  1. Définir un job.
  2. Spécifier l'environnement d'exécution (runner) (par exemple, Ubuntu).
  3. Ajouter des étapes (steps) pour exécuter des commandes.

Vous allez créer un workflow simple qui affiche "Hello, World!" dans la console. Ce laboratoire s'appuie sur le dépôt que vous avez créé lors des laboratoires précédents. Vous allez cloner le dépôt github-actions-demo et mettre à jour un fichier de workflow existant.

Ajouter la clé runs-on avec ubuntu-latest dans la tâche build

Dans cette étape, vous allez cloner le dépôt et mettre à jour un fichier de workflow existant pour définir une tâche (job) et spécifier le système d'exploitation sur lequel elle doit s'exécuter.

  1. Sur la page de votre dépôt GitHub pour github-actions-demo, cliquez sur le bouton vert Code.
  2. 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.
  3. Ouvrez le terminal dans l'environnement LabEx. Le chemin par défaut est ~/project.
  4. 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
  1. Naviguez dans le dépôt cloné :
cd ~/project/github-actions-demo
  1. Créez un nouveau fichier de workflow nommé simple-commands.yml dans le répertoire .github/workflows :
touch .github/workflows/simple-commands.yml
  1. Ouvrez le fichier .github/workflows/simple-commands.yml dans le WebIDE. Vous pouvez le trouver dans l'explorateur de fichiers sur le côté gauche.

  2. Ajoutez le contenu suivant au fichier pour définir le nom du workflow, le déclencheur (trigger), la tâche (job) et l'exécuteur (runner) :

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

Le mot-clé runs-on vous permet de spécifier le type de machine sur lequel la tâche doit s'exécuter. GitHub fournit des exécuteurs hébergés (hosted runners) pour Linux, Windows et macOS. ubuntu-latest est un exécuteur couramment utilisé qui fournit un environnement Ubuntu standard.

Ajouter la section steps sous la tâche build

Maintenant que vous avez défini l'environnement de travail (job environment), vous devez définir ce que le travail (job) accomplit réellement. Ceci est réalisé en utilisant le mot-clé steps.

Un travail contient une séquence de tâches appelées steps. Les étapes peuvent exécuter des commandes, exécuter des tâches de configuration (setup tasks) ou exécuter une action dans votre dépôt (repository).

Instructions

  1. Ouvrez le fichier .github/workflows/simple-commands.yml dans l'IDE Web (WebIDE).
  2. Ajoutez le mot-clé steps sous le travail (job) build.

Mettez à jour votre fichier pour qu'il ressemble à ceci :

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:

Assurez-vous que steps: est au même niveau d'indentation que runs-on:.

Ajouter une étape avec le nom 'Echo Hello' et l'exécution echo "Hello, World!"

Dans cette étape, vous allez ajouter plusieurs tâches à la section steps pour exécuter diverses commandes shell. Cela démontre que vous pouvez exécuter des commandes Linux standard sur l'exécuteur (runner).

Instructions

  1. Ouvrez .github/workflows/simple-commands.yml dans le WebIDE.
  2. Ajoutez les étapes suivantes sous la clé steps: :
steps:
  - name: Echo Hello
    run: echo "Hello, World!"

  - name: Show Date
    run: date

  - name: List Files
    run: ls -la

Votre fichier complet devrait ressembler à ceci :

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Echo Hello
        run: echo "Hello, World!"

      - name: Show Date
        run: date

      - name: List Files
        run: ls -la

Explication

  • echo "Hello, World!": Affiche du texte dans la console.
  • date: Affiche la date et l'heure actuelles sur l'exécuteur.
  • ls -la: Liste les fichiers dans le répertoire courant. Vous remarquerez que le répertoire est presque vide car nous n'avons pas encore extrait le code (nous le ferons dans le prochain laboratoire).

Committer et pousser le fichier de workflow mis à jour

Les flux de travail GitHub Actions font partie du code de votre dépôt. Pour activer le flux de travail, vous devez valider (commit) les modifications et les pousser (push) vers GitHub.

  1. Assurez-vous d'être dans le répertoire du dépôt :
cd ~/project/github-actions-demo
  1. Mettez en zone de transit (stage) le nouveau fichier de flux de travail :
git add .github/workflows/simple-commands.yml
  1. Validez les modifications avec un message descriptif :
git commit -m "Add simple commands workflow"

Exemple de sortie :

[main ... ] Add simple commands workflow
 1 file changed, 14 insertions(+)
 create mode 100644 .github/workflows/simple-commands.yml
  1. Poussez les modifications 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 :

  1. Une fenêtre contextuelle apparaîtra avec le message : "The extension 'GitHub' wants to sign in using GitHub." (L'extension 'GitHub' souhaite se connecter en utilisant GitHub.) Cliquez sur Allow (Autoriser).
  2. Une nouvelle notification apparaîtra. Cliquez sur "Copy&Continue to GitHub" (Copier et continuer vers GitHub), puis cliquez sur "Open" (Ouvrir) dans l'invite suivante.
  3. 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.
  4. Attendez quelques secondes, et vous verrez le terminal terminer avec succès l'opération de poussée.

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).

Exemple de sortie :

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 447 bytes | 447.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   abcdef1..1234567  main -> main

Visualiser les journaux d'exécution du workflow dans l'onglet GitHub Actions

Après avoir poussé votre code, le flux de travail (workflow) se déclenchera automatiquement sur GitHub. Vous pouvez visualiser les journaux d'exécution du flux de travail pour voir ce qui s'est passé.

  1. Rendez-vous sur votre dépôt sur GitHub dans un navigateur web : https://github.com/your-username/github-actions-demo
  2. Cliquez sur l'onglet Actions en haut de la page du dépôt.
  3. Vous devriez voir une exécution de flux de travail listée, probablement nommée "Simple Commands" ou "Add simple commands workflow".

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.

  1. Cliquez sur le titre de l'exécution du flux de travail, puis cliquez sur le job build.
  2. Développez les étapes Echo Hello, Show Date et List Files pour voir leur sortie.

Vous remarquerez que List Files affiche un répertoire vide (à l'exception des fichiers cachés comme . et ..), démontrant que l'exécuteur (runner) commence avec un environnement propre (clean slate).

GitHub Actions logs
GitHub Actions tab

Résumé

Dans ce laboratoire, vous avez réussi à créer un workflow GitHub Actions qui exécute plusieurs commandes shell. Vous avez appris à :

  1. Définir une Tâche (Job) : Vous avez créé une tâche nommée build.
  2. Sélectionner un Exécuteur (Runner) : Vous avez utilisé runs-on: ubuntu-latest.
  3. Exécuter Plusieurs Commandes : Vous avez ajouté des étapes pour exécuter echo, date, et ls.
  4. Observer l'Environnement de l'Exécuteur : Vous avez constaté que l'exécuteur démarre avec un répertoire vide.

Dans le prochain laboratoire, vous apprendrez à utiliser l'Action Checkout pour accéder aux fichiers de votre dépôt au sein de l'exécuteur.