À propos des contextes
Les contextes offrent un moyen d’accéder aux informations sur les exécutions de workflow, les variables, les environnements d’exécuteur, les travaux et les étapes. Chaque contexte est un objet qui contient des propriétés, qui peuvent être des chaînes ou d’autres objets.
Les contextes, les objets et les propriétés varient considérablement dans les différentes conditions d’exécution des workflows. Par exemple, le contexte matrix
est rempli uniquement pour les travaux figurant dans une matrice.
Vous pouvez accéder aux contextes à l’aide de la syntaxe d’expression. Pour plus d’informations, consultez « Évaluer les expressions dans les workflows et les actions ».
${{ <context> }}
Avertissement
Lors de la création de flux de travail et d’actions, vous devez toujours déterminer si votre code pourrait exécuter des entrées non fiables provenant de personnes malveillantes potentielles. Certains contextes doivent être traités comme des entrées non fiables, car un attaquant peut insérer son propre contenu malveillant. Pour plus d’informations, consultez « Informations de référence sur l’utilisation sécurisée ».
Déterminer quand utiliser des contextes
GitHub Actions inclut une collection de variables appelées contextes, et une collection similaire de variables appelées variables par défaut. Ces variables sont destinées à être utilisées à différents stades du workflow.
- Variables par défaut : ces variables d’environnement existent uniquement sur l’exécuteur du travail. Pour plus d’informations, consultez « Stocker des informations dans des variables ».
- Contextes : vous pouvez utiliser la plupart des contextes à n’importe quel stade du workflow, notamment quand les variables par défaut ne sont pas disponibles. Par exemple, vous pouvez utiliser des contextes avec des expressions pour effectuer un traitement initial avant que le travail soit routé vers un exécuteur. Cela vous permet d’utiliser un contexte avec le mot clé conditionnel
if
pour déterminer si une étape doit être exécutée. Une fois le travail en cours d’exécution, vous pouvez également récupérer des variables de contexte à partir de l’exécuteur du travail, par exemplerunner.os
. Pour plus d’informations sur l’emplacement où vous pouvez utiliser divers contextes au sein d’un workflow, consultez Référence sur les contextes.
L’exemple suivant montre comment ces différents types de variables peuvent être utilisés ensemble dans un travail :
name: CI on: push jobs: prod-check: if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest steps: - run: echo "Deploying to production server on branch $GITHUB_REF"
name: CI
on: push
jobs:
prod-check:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run: echo "Deploying to production server on branch $GITHUB_REF"
Dans cet exemple, l’instruction if
vérifie le contexte github.ref
pour déterminer le nom de la branche actuelle. Si le nom est refs/heads/main
, les étapes suivantes sont exécutées. La vérification if
est traitée par GitHub Actions, et le travail n’est envoyé à l’exécuteur que si le résultat est true
. Une fois le travail envoyé à l’exécuteur, l’étape est exécutée et référence la variable $GITHUB_REF
de l’exécuteur.