# Contextes

En savoir plus sur les contextes dans GitHub Actions.

## À 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 `matrix` contexte n’est renseigné que pour les tâches d’une [matrice](/fr/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstrategymatrix).

Vous pouvez accéder aux contextes à l’aide de la syntaxe d’expression. Pour plus d’informations, consultez « [Évaluer des expressions dans les workflows et les actions.](/fr/enterprise-server@3.22/actions/reference/workflows-and-actions/expressions) ».

`${{ <context> }}`

> \[!WARNING]
> 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](/fr/enterprise-server@3.22/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks) ».

## 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 d’environnement par défaut :** ces variables d’environnement existent uniquement sur l’exécuteur du travail. Pour plus d’informations, consultez « [Références des variables](/fr/enterprise-server@3.22/actions/reference/workflows-and-actions/variables#default-environment-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 exemple `runner.os`. Pour plus d’informations sur l’emplacement où vous pouvez utiliser divers contextes au sein d’un workflow, consultez [Référence des contextes](/fr/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#context-availability).

L’exemple suivant montre comment ces différents types de variables peuvent être utilisés ensemble dans un travail :

```yaml copy
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`](/fr/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#github-context) pour déterminer le nom de la branche actuelle. Si le nom est `refs/heads/main`, les étapes suivantes sont exécutées. La `if` vérification est traitée par GitHub Actions, et le travail est envoyé uniquement à l’exécuteur 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`](/fr/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables) de l’exécuteur.