DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesGitHub Actions avancé : secrets, matrices et déploiement03 - Configurer les environnements de déploiement

Détails

  • 25 minutes
  • Avancé

Objectifs

  • Créer des environnements GitHub (staging, production)
  • Configurer des reviewers obligatoires pour la production
  • Associer un job à un environnement avec environment: name + url
  • Différencier déploiement automatique staging vs manuel production
Module GitHub Actions avancé : secrets, matrices et déploiement

Exercice 03 : Configurer les environnements de déploiement

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer des environnements staging et production dans GitHub
  • ✅ Exiger une approbation manuelle avant de déployer en production
  • ✅ Lier un job à un environnement avec environment: name: et url:
  • ✅ Afficher l'URL de déploiement dans la Pull Request

Durée estimée : 25 min | Difficulté : ⭐⭐⭐☆☆


📖 Contexte

Les environnements GitHub permettent de modéliser le cycle de vie d'un déploiement : staging (automatique à chaque push), production (manuel avec approbation). Chaque environnement peut avoir ses propres secrets, ses règles de protection, et ses reviewers.

Quand un job est associé à un environnement, GitHub affiche le statut du déploiement dans la PR et dans l'onglet Environments du repository.


📋 Énoncé

Vous allez créer deux environnements, configurer une protection manuelle pour la production, puis créer un workflow qui déploie automatiquement en staging et attend une approbation pour la production.

Résultat attendu :

  • Staging se déploie automatiquement à chaque push sur main
  • Production est bloquée en attente d'approbation
  • L'URL de déploiement est visible dans la PR

🧭 Déroulement

Tâche 1 : Créer les environnements dans GitHub

Rendez-vous dans Settings → Environments. Créez deux environnements : staging (sans protection) et production (avec un reviewer obligatoire : vous-même).

Indice : Dans l'environnement production, cochez "Required reviewers" et ajoutez votre compte GitHub. Cette configuration bloquera le job de déploiement jusqu'à ce qu'un reviewer approuve.

Vérification : Les deux environnements sont listés dans Settings → Environments. production affiche "1 required reviewer".


Tâche 2 : Créer le job de déploiement staging

Créez .github/workflows/deploy.yml avec un job deploy-staging qui utilise environment: staging. Le job simule un déploiement et retourne une URL.

Indice :

`yaml

deploy-staging:

runs-on: ubuntu-latest

environment:

name: staging

url: https://staging.mon-app.example.com

steps:

- run: echo "Déploiement en staging..."

`

Vérification : Après le push, l'onglet Environments du repository affiche staging avec le dernier déploiement.


Tâche 3 : Créer le job de déploiement production avec approbation

Ajoutez un job deploy-production qui dépend de deploy-staging et utilise environment: production. Ce job sera automatiquement bloqué jusqu'à l'approbation d'un reviewer.

Indice :

`yaml

deploy-production:

runs-on: ubuntu-latest

needs: deploy-staging

environment:

name: production

url: https://mon-app.example.com

steps:

- run: echo "Déploiement en production après approbation !"

`

Le job s'arrête avec le statut "Waiting" jusqu'à ce qu'un reviewer approuve depuis l'interface GitHub Actions.

Vérification : Dans l'interface Actions, le job deploy-production affiche un bandeau orange "Waiting for approval".


Tâche 4 : Afficher l'URL dans la Pull Request

Configurez l'URL de déploiement staging pour qu'elle utilise une valeur dynamique basée sur le numéro de PR (github.event.number).

Indice :

`yaml

environment:

name: staging

url: https://pr-${{ github.event.number }}.staging.example.com

`

Quand le workflow est déclenché par une PR, GitHub affiche automatiquement cette URL dans le fil de commentaires de la PR comme lien "View deployment".

Vérification : En ouvrant une PR, un lien "View deployment" apparaît sous les checks CI avec l'URL configurée.


Tâche 5 : Approuver et observer le déploiement production

Dans l'interface GitHub Actions, cliquez sur le job deploy-production en attente, puis approuvez le déploiement. Observez le job reprendre son exécution.

Indice : Le bouton "Review deployments" apparaît dans le résumé du run quand un job attend une approbation. Vous pouvez également approuver depuis l'onglet Environments du repository.

Vérification : Après approbation, le job deploy-production passe au vert et les logs affichent le message de déploiement.


🗂️ Mini-Projet : Pipeline de déploiement complet

yaml
# Checkpoints à valider :
# [ ] L'environnement staging est créé sans protection
# [ ] L'environnement production requiert 1 reviewer
# [ ] deploy-staging utilise environment: name: staging
# [ ] deploy-production utilise environment: name: production
# [ ] deploy-production est bloqué "Waiting for approval"
# [ ] L'URL de déploiement est visible dans la PR
# [ ] Bonus : ajoutez un secret spécifique à chaque environnement

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement
  • Tâche 1 : Créer les environnements dans GitHub
  • Tâche 2 : Créer le job de déploiement staging
  • Tâche 3 : Créer le job de déploiement production avec approbation
  • Tâche 4 : Afficher l'URL dans la Pull Request
  • Tâche 5 : Approuver et observer le déploiement production
  • 🗂️ Mini-Projet : Pipeline de déploiement complet