Aller au contenu principal

Workflow de développement et de déploiement

Cette page décrit l'organisation des branches Git et le fonctionnement des déploiements automatiques sur les différents environnements.

attention

Les CI/CD (Continuous Integration / Continuous Deployment) sont déjà configurés pour vous. Ne touchez donc pas au ficher .gitlab-ci.yml à la racine de votre projet sans avoir consulté l'équipe DevOps.

Environnements

Trois environnements sont disponibles :

  • dev : utilisé pour le développement actif. Les branches issues sont fusionnées ici pour les premiers tests techniques.
  • pre-prod : environnement de recette. Il permet de vérifier que rien ne casse, que tout fonctionne correctement, et que la version est prête à être mise en production. C’est une étape obligatoire avant chaque mise en prod.
  • prod : environnement de production. C’est depuis cet environnement que seront faites les démonstrations de fin de sprint.
info

Accéder à vos applications

  • Application déployée en dev (staging) : [app-name].staging.ubsi.fr
  • Application déployée en pré-prod : [app-name].preprod.ubsi.fr

Règles de déploiement

Le déploiement est automatique en fonction de la branche Git ciblée :

  • Tout ce qui est sur la branche dev est déployé automatiquement en environnement dev.
  • Tout ce qui est sur la branche pre-prod est déployé automatiquement en environnement pre-prod.
  • Pour déployer en production, il faut suivre un processus de release.

Pre-prod est une étape obligatoire avant la production.
Elle permet de vérifier que rien ne casse, que tout fonctionne correctement et que la version est prête pour être mise en production.

Gestion des branches

  • Une branche par issue GitLab.
  • Les issues sont regroupées dans des milestones.
  • Une fois développée, chaque branche issue est fusionnée dans dev pour test.
  • Lorsque la milestone est prête, dev est fusionnée dans pre-prod pour vérification.
  • La mise en production se fait via une release manuelle à partir de pre-prod.

Schéma du workflow

Schéma du workflow de branches et de déploiement

Branche main

  • La branche main ne déclenche aucun déploiement.
  • Elle peut être utilisée librement, c'est branche neutre.

🚀 En résumé

Développement d'une nouvelle fonctionnalité

  1. Création d'une nouvelle branche de feature depuis une issue GitLab
  2. Feature développée → merge de cette branche sur devdéploiement automatique en dev

Mise en production

  1. Nouvelle version prête → merge de la branche dev sur pre-proddéploiement automatique en pre-prod & vérification du bon fonctionnement
  2. OK en pre-prod → effectuer la release pour déployer votre nouvelle version en production
info

⚠️ Important - Pipeline de déploiement : À chaque déploiement, une pipeline automatique s'exécute pour vérifier plusieurs éléments critiques :

  • Migrations de base de données : vérification que les migrations DB se sont bien passées et ne risquent pas d'endommager la base de données de l'environnement suivant (pre-prod après dev, prod après pre-prod)
  • Santé de l'environnement précédent : vérification que l'environnement précédent est toujours opérationnel (dev up avant déploiement en pre-prod, pre-prod up avant déploiement en prod)

Si l'une de ces vérifications échoue, le déploiement sera automatiquement bloqué. Pour plus de détails, consultez la documentation de la pipeline.


👉 Poursuivez avec :