Intégration Continue (CI)

Pratique de développement où les développeurs fusionnent leurs modifications de code plusieurs fois par jour dans un dépôt partagé, chaque fusion étant automatiquement vérifiée.

La CI a été formalisée par Grady Booch en 1991 et popularisée par Kent Beck dans l'Extreme Programming. Pipeline typique : déclenchement → build → tests → lint/scan → rapport. Plateformes populaires : GitHub Actions, GitLab CI/CD, Jenkins.

        graph LR
  Center["Intégration Continue (CI)"]:::main
  Rel_parallelism["parallelism"]:::related -.-> Center
  click Rel_parallelism "/terms/parallelism"
  Rel_agile_methodology["agile-methodology"]:::related -.-> Center
  click Rel_agile_methodology "/terms/agile-methodology"
  Rel_raid["raid"]:::related -.-> Center
  click Rel_raid "/terms/raid"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explique-moi comme si j'avais 5 ans

La CI, c'est comme un professeur intelligent qui corrige tes devoirs à chaque exercice terminé. Au lieu d'attendre la fin du mois pour découvrir une erreur, tu la vois en quelques secondes et tu la corriges aussitôt.

🤓 Expert Deep Dive

Un CI efficace repose sur la pyramide de tests (nombreux tests unitaires, peu d'E2E), fonctionne mieux avec le Trunk-Based Development et est le prérequis au CD (Continuous Delivery/Deployment).

❓ Questions fréquentes

What is the difference between CI and CD?

CI (Continuous Integration) automatically builds and tests code on every commit, ensuring the codebase is always in a working state. CD (Continuous Delivery or Deployment) goes further, automatically delivering or deploying that verified code to staging or production environments.

What is 'integration hell'?

Integration hell occurs when developers work on separate branches for a long time and then try to merge everything at once. The resulting merge conflicts and hidden incompatibilities can take days or weeks to resolve. CI prevents this by integrating small changes frequently.

Do I need CI for a solo project?

It's highly recommended even for solo projects. CI automatically runs your tests on every commit, catching regressions you might miss, and platforms like GitHub Actions offer generous free tiers.

📚 Sources