Tech Hub

@ Solution Architecture Works

Automatiser les tests de charge Azure en utilisant GitHub

Implémenter des variables et des scripts dans un flux de travail

Temps estimé :5 minutes 57 vues

Maintenant que vous connaissez les composants d’un fichier de flux de travail, explorons comment personnaliser ces flux pour différents scénarios. Dans cette unité, nous allons nous concentrer sur l’utilisation des variables et des scripts pour optimiser le flux de travail.

Les variables offrent un moyen de stocker et de réutiliser des informations de configuration non sensibles. Vous pouvez stocker n’importe quelle donnée de configuration, comme des options de compilation, des noms d’utilisateur ou des noms de serveurs, sous forme de variables. Les variables sont interpolées sur la machine d’exécution qui exécute votre flux de travail. Les commandes exécutées dans les actions ou les étapes du flux de travail peuvent créer, lire et modifier des variables.

Vous pouvez définir vos propres variables personnalisées ou utiliser les variables d’environnement par défaut que GitHub définit automatiquement. Il existe deux façons de créer une variable personnalisée :

  1. Pour définir une variable d’environnement à utiliser dans un seul flux de travail, vous pouvez utiliser la clé env dans le fichier de flux de travail.
  2. Pour définir une variable de configuration utilisable dans plusieurs flux de travail, vous pouvez la définir au niveau de l’organisation, du dépôt ou de l’environnement.

Définir des variables d’environnement pour un seul flux de travail

Pour définir une variable d’environnement personnalisée pour un seul flux de travail, vous pouvez utiliser la clé env dans le fichier YAML du flux de travail. La portée d’une variable personnalisée définie de cette manière est limitée à l’élément où elle est définie. Vous pouvez définir des variables avec les portées suivantes :

  • Pour l’ensemble du flux de travail, en utilisant env au niveau supérieur du fichier.
  • Pour le contenu d’un job dans le flux de travail, en utilisant jobs.<job_id>.env.
  • Pour une étape spécifique dans un job, en utilisant jobs.<job_id>.steps[*].env.

Remarque

Les clés jobs.<job_id>.env et jobs.<job_id>.steps[*].env mettent en œuvre des contextes, qui seront abordés plus loin dans ce module.

L’exemple de flux de travail suivant implémente deux variables, DAY_OF_WEEK et Greeting, pour produire un message de salutation lors de son exécution.

YAML
name: Greeting on variable day

on:
  workflow_dispatch

env:
  DAY_OF_WEEK: Monday

jobs:
  greeting_job:
    runs-on: ubuntu-latest
    env:
      Greeting: Hello
    steps:
      - name: "Say Hello"
        run: echo "$Greeting, today is $DAY_OF_WEEK!"

Conventions de nommage pour les variables d’environnement

Lorsque vous définissez une variable d’environnement, vous ne pouvez pas utiliser les noms des variables d’environnement par défaut. Si vous tentez d’écraser la valeur de l’une de ces variables par défaut, l’affectation sera ignorée.

💡 Astuce

Pour obtenir la liste complète des variables d’environnement par défaut, consultez la page Variables d’environnement par défaut.

Créer des variables de configuration pour un dépôt

Pour créer des secrets ou des variables sur GitHub pour un dépôt appartenant à un compte personnel, vous devez être le propriétaire du dépôt.
Pour créer des secrets ou des variables sur GitHub pour un dépôt appartenant à une organisation, vous devez avoir un accès administrateur.
Enfin, pour créer des secrets ou des variables via l’API REST, que ce soit pour un dépôt personnel ou organisationnel, vous devez avoir un accès collaborateur.

Priorité des variables de configuration

Si une variable portant le même nom existe à plusieurs niveaux, la variable définie au niveau le plus bas prend le dessus.
Par exemple, si une variable définie au niveau de l’organisation a le même nom qu’une variable définie au niveau du dépôt, alors la variable du dépôt sera prioritaire.
De même, si une variable est définie au niveau de l’organisation, du dépôt et de l’environnement, la variable de l’environnement sera prioritaire.

Ajouter des scripts à votre flux de travail

Vous pouvez utiliser un flux de travail GitHub Actions pour exécuter des scripts et des commandes shell, qui seront lancés sur le runner assigné.
L’exemple suivant montre comment utiliser le mot-clé run pour exécuter la commande suivante sur le runner :

YAML
jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - run: npm install -g bats

Pour exécuter un script stocké dans votre dépôt, vous devez d’abord récupérer (checkout) le dépôt sur le runner.
L’exemple suivant :

  • récupère le dépôt ;
  • définit le répertoire de travail (l’emplacement des scripts dans le dépôt) ;
  • exécute le script my-script.sh.
YAML
jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Run a script
        run: ./my-script.sh

Tout script que vous souhaitez exécuter dans un job de flux de travail doit être exécutable.
Vous pouvez passer le script en argument à l’interpréteur qui l’exécute — par exemple :

YAML
run: bash script.sh
Share this Doc

Implémenter des variables et des scripts dans un flux de travail

Or copy link

CONTENTS