Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.
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@v3
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@v3
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 ».