Pipelines GitLab CI
La pipeline CI/CD est modulaire : chaque fichier dans infrastructure/cicd/ gere un aspect.
Structure des fichiers
infrastructure/cicd/
_variables.yml Variables globales (registry Docker, Dockerfile)
_templates.yml Templates de jobs (build, deploy, test, migrate)
compose-review.yml Composition automatique de la branche review
test.yml Tests unitaires Jest (11 services en parallele)
build.yml Build Docker par service
security.yml Scan Trivy (vulnerabilites HIGH/CRITICAL)
migrate.yml Migrations SQL via K8s Job
deploy-staging.yml Deploy K8s staging
deploy-review.yml Deploy K8s review
deploy-production.yml Deploy K8s production (a activer)Stages
compose → test → build → security → migrate → deploy| Stage | Description |
|---|---|
| compose | Reconstruit la branche review (si DEPLOY_TARGET=review) |
| test | Tests unitaires Jest, 11 services en parallele |
| build | Build Docker avec tags :staging, :review ou :production |
| security | Scan Trivy sur les images Docker |
| migrate | Migrations SQL (manuel) |
| deploy | Rollout K8s + restart des deployments |
Variable DEPLOY_TARGET
Sur la branche develop, un dropdown permet de choisir la cible :
| Valeur | Effet |
|---|---|
| staging (defaut) | Pipeline staging classique : test → build → security → migrate → deploy-staging |
| review | Seul le job compose-review s'execute, qui reconstruit la branche review et declenche sa propre pipeline |
Les deux flows ne tournent jamais en meme temps.
Tags Docker
Le build tague automatiquement les images selon la branche :
| Branche | Tags |
|---|---|
develop | :staging, :SHA, :latest |
review | :review, :SHA, :latest |
main | :production, :SHA, :latest |
Registry : registry.gitlab.com/nxpay/nex/<service>