GitHub Actions : Ajout de variables d'environnement

GitBeginner
Pratiquer maintenant

Introduction

Dans GitHub Actions, les variables d'environnement sont des paires clé-valeur disponibles pour les étapes d'un workflow. Vous pouvez définir des variables d'environnement pour un workflow entier, un job spécifique ou une étape spécifique.

Dans ce lab, vous apprendrez à :

  1. Créer un fichier de workflow GitHub Actions.
  2. Définir une variable d'environnement au niveau du workflow.
  3. Accéder à et utiliser la variable d'environnement dans une étape.
  4. Mettre à jour la variable et déclencher à nouveau le workflow.

Ce lab s'appuie sur le dépôt que vous avez créé lors des labs précédents. Vous allez cloner le dépôt github-actions-demo et créer un workflow qui utilise des variables d'environnement.

Ajouter la section 'env' avec une variable GREETING définie sur 'Hello'

Dans cette étape, vous allez cloner le dépôt et créer un nouveau fichier de workflow GitHub Actions avec une variable d'environnement globale.

  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 nommé env-demo.yml à l'intérieur du répertoire .github/workflows :
touch .github/workflows/env-demo.yml
  1. Ouvrez .github/workflows/env-demo.yml dans le WebIDE et ajoutez le contenu suivant. Ceci définit le nom du workflow, l'événement déclencheur (push), et la section env avec une variable nommée GREETING.
name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"
  • name: Le nom de votre workflow.
  • on: Spécifie que ce workflow s'exécute lorsqu'un événement push se produit.
  • env: Définit une carte de variables d'environnement qui sont disponibles pour tous les jobs et étapes du workflow. Ici, nous définissons GREETING à la chaîne de caractères 'Hello'.

Ajouter une étape pour afficher la variable avec la commande 'run echo "${{ env.GREETING }}, World!"'

Dans cette étape, vous allez définir un job et une étape pour utiliser la variable d'environnement que vous avez créée. Vous accédez aux variables d'environnement dans le fichier de workflow en utilisant la syntaxe ${{ env.VARIABLE_NAME }}.

Ouvrez .github/workflows/env-demo.yml dans le WebIDE et ajoutez le contenu suivant à la fin du fichier :

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"

Votre fichier complet devrait ressembler à ceci :

name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"
  • jobs: Définit les jobs que le workflow exécute.
  • print-greeting: L'identifiant (ID) du job.
  • runs-on: Configure le type de machine (runner) sur lequel le job s'exécute.
  • steps: Regroupe toutes les étapes qui s'exécutent dans le job.
  • run: Exécute une commande dans le shell du runner. Nous utilisons echo pour afficher la valeur de GREETING suivie de , World!.

Committer et pousser le workflow mis à jour avec 'env'

À cette étape, vous allez valider (commit) le nouveau fichier de flux de travail et le pousser (push) vers GitHub. La poussée de ce fichier enregistrera le flux de travail auprès de GitHub Actions et déclenchera la première exécution.

  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 fichier de flux de travail :
git add .github/workflows/env-demo.yml
  1. Validez les modifications :
git commit -m "Add workflow with environment variable"
  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." Cliquez sur Allow.
  2. Une nouvelle notification apparaîtra. Cliquez sur "Copy&Continue to GitHub", puis cliquez sur "Open" 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.

Déclencher le workflow en poussant un changement

Le workflow est configuré pour s'exécuter lors des événements push. Bien que la poussée précédente ait déjà déclenché le workflow, voyons à quel point il est facile de mettre à jour la variable d'environnement et de le déclencher à nouveau.

  1. Ouvrez .github/workflows/env-demo.yml dans le WebIDE.
  2. Changez la valeur de GREETING de "Hello" à "Hi".
env:
  GREETING: "Hi"
  1. Commitez et poussez ce changement :
git add .github/workflows/env-demo.yml
git commit -m "Update greeting variable"
git push

Note sur l'authentification :
Si vous ne vous êtes pas authentifié récemment, le WebIDE vous demandera automatiquement de vous authentifier lorsque vous exécuterez git push. Suivez les mêmes étapes d'authentification que celles décrites à l'étape précédente.

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.

Cette poussée déclenchera une nouvelle exécution du workflow avec la variable mise à jour.

Vérifier la sortie des variables d'environnement dans les journaux d'exécution sur GitHub

Après avoir poussé votre code, le workflow se déclenchera automatiquement sur GitHub. Vous pouvez consulter les journaux d'exécution du workflow pour vérifier que la variable d'environnement est utilisée correctement.

  1. Visitez 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 nouvelle exécution de workflow listée, probablement nommée "Update greeting variable".

Note : Lorsque vous poussez du code, plusieurs Actions peuvent être déclenchées si vous avez plusieurs fichiers de workflow dans votre dépôt. Veuillez identifier l'exécution de workflow correcte en vérifiant le nom du workflow dans la barre latérale gauche ou en utilisant la liste des exécutions de workflow sur le côté droit.

  1. Cliquez sur le titre de l'exécution, puis cliquez sur la tâche (job) print-greeting.
  2. Développez l'étape Print Greeting pour voir la sortie.

Vous devriez voir l'exécution de la commande :

Run echo "Hi, World!"
  echo "Hi, World!"
  shell: /usr/bin/bash -e {0}
Hi, World!

Remarquez que ${{ env.GREETING }} a été remplacé par sa nouvelle valeur Hi.

GitHub Actions logs

Résumé

Dans ce lab, vous avez réussi à créer un workflow GitHub Actions qui utilise des variables d'environnement. Vous avez appris à :

  1. Définir des variables d'environnement en utilisant le mot-clé env au niveau du workflow.
  2. Accéder à ces variables dans vos étapes en utilisant la syntaxe ${{ env.VARIABLE_NAME }}.
  3. Mettre à jour la variable et déclencher à nouveau le workflow en poussant des changements.

Les variables d'environnement sont essentielles pour gérer les valeurs de configuration qui peuvent changer entre différents environnements ou exécutions, sans modifier la logique de commande codée en dur.