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.
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.
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
devest déployé automatiquement en environnement dev. - Tout ce qui est sur la branche
pre-prodest 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
devpour test. - Lorsque la milestone est prête,
devest fusionnée danspre-prodpour vérification. - La mise en production se fait via une release manuelle à partir de
pre-prod.
Schéma du workflow

Branche main
- La branche
mainne déclenche aucun déploiement. - Elle peut être utilisée librement, c'est branche neutre.
🚀 En résumé
Développement d'une nouvelle fonctionnalité
- Création d'une nouvelle branche de feature depuis une issue GitLab
- Feature développée → merge de cette branche sur
dev→ déploiement automatique en dev
Mise en production
- Nouvelle version prête → merge de la branche
devsurpre-prod→ déploiement automatique en pre-prod & vérification du bon fonctionnement - OK en pre-prod → effectuer la release pour déployer votre nouvelle version en production
⚠️ 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 :