Skip to main content

Essential features of GitHub Actions

GitHub Actions est conçu pour vous aider à créer des automatisations robustes et dynamiques. Ce guide vous montre comment créer des workflows GitHub Actions qui incluent des variables d’environnement, des scripts personnalisés, etc.

Vue d’ensemble

GitHub Actions vous permet de personnaliser vos workflows pour répondre aux besoins uniques de votre application et de votre équipe. Dans ce guide, nous allons aborder certaines des techniques de personnalisation essentielles, telles que l’utilisation de variables, l’exécution de scripts et le partage de données et d’artefacts entre les travaux.

Utilisation de variables dans vos workflows

GitHub Actions inclut des variables d’environnement par défaut pour chaque exécution de workflow. Si vous devez utiliser des variables d’environnement personnalisées, vous pouvez les définir dans votre fichier de workflow YAML. Cet exemple montre comment créer des variables personnalisées nommées POSTGRES_HOST et POSTGRES_PORT. Ces variables sont ensuite disponibles pour le script node client.js.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Connect to PostgreSQL
        run: node client.js
        env:
          POSTGRES_HOST: postgres
          POSTGRES_PORT: 5432

Pour plus d’informations, consultez « Variables ».

Ajout de scripts à votre workflow

Vous pouvez utiliser un flux de travail GitHub Actions pour exécuter des scripts et des commandes d’interpréteur de commandes, qui sont ensuite exécutés sur l’exécuteur affecté. Cet exemple montre comment utiliser le mot-clé run pour exécuter la commande npm install -g bats sur l'exécuteur.

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

Pour utiliser un flux de travail afin d'exécuter un script stocké dans votre référentiel, vous devez d'abord extraire le référentiel vers l'exécuteur. Une fois cela fait, vous pouvez utiliser le mot-clé run pour exécuter le script sur l’exécuteur. L'exemple suivant exécute deux scripts, chacun dans une étape de projet distincte. L'emplacement des scripts sur l'exécuteur est spécifié en définissant un répertoire de travail par défaut pour les commandes d'exécution. Pour plus d’informations, consultez « Définir des valeurs par défaut pour les travaux ».

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
      - name: Run another script
        run: ./my-other-script.sh

Tous les scripts que vous souhaitez exécuter au cours d'une tâche de workflow doivent être exécutables. Vous pouvez le faire soit au sein du flux de travail en passant le script comme argument à l'interpréteur qui l'exécutera, par exemple run: bash script.sh, soit en rendant le fichier lui-même exécutable. Vous pouvez donner au fichier l'autorisation d'exécution en utilisant la commande git update-index --chmod=+x PATH/TO/YOUR/script.sh localement, puis en committant et en envoyant le fichier dans le référentiel. Par ailleurs, pour les flux de travail exécutés sur les exécuteurs Linux et Mac, vous pouvez ajouter une commande pour donner au fichier l'autorisation d'exécution dans la tâche de workflow, avant d'exécuter le script :

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: Make the script files executable
        run: chmod +x my-script.sh my-other-script.sh
      - name: Run the scripts
        run: |
          ./my-script.sh
          ./my-other-script.sh

Pour plus d’informations sur le mot clé run, consultez « Workflow syntax for GitHub Actions ».

Partage de données entre travaux

Si votre travail génère des fichiers que vous souhaitez partager avec un autre travail dans le même workflow, ou si vous souhaitez enregistrer les fichiers pour vous y référer ultérieurement, vous pouvez les stocker dans GitHub en tant qu’artefacts. Les artefacts sont les fichiers créés lorsque vous générez et testez votre code. Par exemple, les artefacts peuvent inclure des fichiers binaires ou de package, des résultats de test, des captures d’écran ou des fichiers journaux. Les artefacts sont associés à l’exécution du workflow où ils ont été créés et peuvent être utilisés par un autre travail. Toutes les actions et tous les workflows appelés dans une exécution disposent d’un accès en écriture aux artefacts de cette exécution.

Par exemple, vous pouvez créer un fichier, puis le charger en tant qu’artefact.

jobs:
  example-job:
    name: Save output
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        run: |
          expr 1 + 1 > output.log
      - name: Upload output file
        uses: actions/upload-artifact@v4
        with:
          name: output-log-file
          path: output.log

Pour télécharger un artefact à partir d’une exécution de workflow distincte, vous pouvez utiliser l’action actions/download-artifact. Par exemple, vous pouvez télécharger l’artefact nommé output-log-file.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Download a single artifact
        uses: actions/download-artifact@v4
        with:
          name: output-log-file

Pour télécharger un artefact à partir de la même exécution de workflow, votre travail de téléchargement doit spécifier needs: upload-job-name pour ne pas commencer tant que le travail de chargement n’est pas terminé.

Pour plus d’informations sur les artefacts, consultez « Stockage des données de workflow en tant qu’artefacts ».

Étapes suivantes

Pour continuer à découvrir GitHub Actions, consultez « À propos des workflows ».