Documentation de la pipeline CI/CD
Cette documentation décrit l'organisation et le fonctionnement de la pipeline CI/CD de votre repository d'application.
👉 Pour le contexte global, voir :
🔧 Configuration de la pipeline
Fichier .gitlab-ci.yml
La configuration de votre pipeline CI/CD se trouve dans le fichier .gitlab-ci.yml à la racine de votre repository.
⚠️ Important : Ne modifiez pas ce fichier ! Il est configuré pour fonctionner avec l'infrastructure DevOps du projet.
Implémentation centralisée
Ce fichier .gitlab-ci.yml fait appel à l'implémentation de la pipeline qui est stockée dans un repository privé géré par l'équipe DevOps. Cette approche centralisée permet :
- Une mise à jour simplifiée de la pipeline pour tous les projets
- Une maintenance centralisée des configurations
- Une cohérence entre tous les repositories d'applications
🚀 Stages et Jobs de la pipeline
Vous pouvez suivre l'exécution de la pipeline dans GitLab via Build > Pipelines après vos commits, merge requests ou déploiements.
🏷️ generate-tag
- Objectif : Génère automatiquement le tag qui sera utilisé pour les images Docker du frontend et du backend
- Déclenchement : À chaque exécution de pipeline
✨ prettier-check
- Objectif : Formate automatiquement votre code selon les standards du projet
- Déclenchement : À chaque push
- Action : Application automatique du formatage Prettier
🧪 test-integration
- Objectif : Exécute les tests d'intégration de votre application
- Comportement : Si les tests échouent, le job échoue et bloque la pipeline
- Impact : Empêche le déploiement en cas de régression
🗄️ test-migration
- Objectif : Vérifie la sécurité des migrations de base de données
- Règles de sécurité : Le job échouera si les migrations contiennent des actions destructives :
DROP TABLEDROP COLUMNDELETE FROMTRUNCATEDROP INDEXDROP CONSTRAINT
- Protection : Évite la suppression accidentelle de données en production
🐳 Jobs de build
- Objectif : Construisent et publient les images Docker de votre application
- Artefacts produits :
- Image Docker du frontend
- Image Docker du backend
- Stockage : Images disponibles dans Deploy > Container Registry de votre repository GitLab
📚 deploy-doc
- Objectif : Déploie la documentation mise à jour
- Déclenchement : Push ou merge request sur la branche
dev - Source : Contenu du dossier
docs/de votre repository
🚀 Jobs de deploy
- Objectif : Déclenchent les déploiements de votre application dans un des environnements (dev, pre-prod, prod)
- Fonctionnement :
- Ces jobs appellent une pipeline externe gérée par l'équipe DevOps et Socle
- L'image est récupérée et les variables d'environnement sont appliquées
- Après quelques minutes, votre application devrait être accessible dans l'environnement ciblé, vous pouvez vérifier grâce aux hash du commit affiché dans l'interface
- Environnements : Déploiement selon les branches (dev, pre-prod, main)
🔍 Suivi de la pipeline
Dans GitLab
- Build > Pipelines : Vue d'ensemble des exécutions
- Deploy > Container Registry : Images Docker générées
- Logs détaillés : Cliquez sur chaque job pour voir les détails d'exécution
En cas d'échec
- Les jobs bloquants (tests, migrations) empêchent la progression
- Consultez les logs pour identifier la cause
- Corrigez le problème avant de relancer
- Si vous ne parvenez pas à corriger, contactez les DevOps
🪲 Bugs connus
Runner Gitlab
Si votre job échoue et que GitLab vous indique l’erreur suivante :
-> Relancez simplement votre job.
Cette erreur est due à une surcharge des runners utilisés pour exécuter vos jobs. Cela peut arriver si un trop grand nombre de jobs nécessitant trop de ressources sont lancés en même temps.
🚀 Pour aller plus loin
- Workflow de développement – cycle de développement, branches et déploiements
- Tutoriel de release – procédure de mise en production
- Gestion des tickets – organisation des issues et milestones