La fonctionnalité GitHub Environments
Créer un Environment
Dans un repo dont vous êtes administrateur : Settings > Environments > New environment. Donnez-lui un nom (ex. staging) et validez. Vous arrivez sur sa page de configuration, où vous pouvez ajouter :
- des secrets (chiffrés, jamais affichés en clair une fois enregistrés) ;
- des variables (en clair, visibles dans les logs si vous les affichez explicitement) ;
- des règles de protection (module suivant).
Étape pratique 1 — créer un Environment et une variable scopée
- Créez un Environment nommé
demo. - Ajoutez-lui une variable (pas un secret, pour rester simple) : nom
GREETING, valeurbonjour-depuis-demo. - Dans votre repo, créez
.github/workflows/env-demo.yml:
name: Environment demo
on:
workflow_dispatch:
jobs:
say-hello:
runs-on: ubuntu-latest
environment: demo
steps:
- name: Afficher la variable scopée
run: echo "Message : ${{ vars.GREETING }}"
- Committez, poussez, puis déclenchez le workflow manuellement (onglet Actions > sélectionnez le workflow > Run workflow — c'est ce que permet
workflow_dispatch). - Ouvrez le run terminé : le log de l'étape affiche
Message : bonjour-depuis-demo.
Vérifier le scoping
Retirez la ligne environment: demo du fichier, committez, relancez le workflow manuellement. Le log affiche cette fois Message : (vide) : la variable GREETING n'existe que pour les jobs qui référencent explicitement l'Environment demo. C'est la preuve concrète du scoping — pas juste une affirmation à prendre pour acquise.
Remettez environment: demo avant de continuer au module suivant.
La page Deployments
Un job qui référence un Environment crée automatiquement un objet de déploiement, visible via le lien Deployments dans la barre latérale de la page principale du repo (ou via l'API REST/GraphQL). Chaque exécution y apparaît avec son statut (in_progress, success, failure) et, si vous l'avez renseignée, une URL d'environnement — utile pour retrouver rapidement l'historique de ce qui a été déployé où, sans fouiller les logs de workflow un par un.
Ce que vous venez de faire
Vous avez créé un Environment, vérifié par la preuve (pas par la théorie) que ses variables sont scopées aux jobs qui le référencent explicitement, et découvert la page Deployments qui trace chaque exécution. Le module suivant ajoute la vraie raison d'être des Environments : les règles de protection qui transforment un déploiement automatique en déploiement gouverné.
Vérifiez votre compréhension
Un secret défini au niveau d'un Environment est-il visible par tous les jobs du workflow ?
Comment accède-t-on à une variable (pas un secret) définie au niveau d'un Environment, dans un step de workflow ?
Que se passe-t-il si vous convertissez un repo public en privé alors qu'il a un Environment configuré avec des règles de protection, sur un plan GitHub Free ?
Envie d'être prévenu des prochains modules ?
L'Académie reste gratuite et en accès libre, sans inscription. Si vous voulez juste être averti par email à la sortie d'un nouveau module, c'est ici — aucune obligation, désinscription en un clic.