Ă 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 des 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 dâenvironnement 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
ifpour 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 des 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.