Kontinuierliche Integration (CI)
Eine Softwareentwicklungspraxis, bei der Entwickler Codeänderungen mehrmals täglich in ein gemeinsames Repository integrieren, wobei jede Integration automatisch durch Build und Tests verifiziert wird.
CI wurde von Grady Booch 1991 beschrieben und von Kent Beck im Rahmen von Extreme Programming populär gemacht. Eine typische Pipeline: Trigger → Build → Test → Lint/Scan → Report. Bekannte Plattformen: GitHub Actions, GitLab CI/CD, Jenkins, CircleCI.
graph LR
Center["Kontinuierliche Integration (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;
🧒 Erkläre es wie einem 5-Jährigen
CI ist wie ein kluger Lehrer, der deine Hausaufgaben nach jeder einzelnen Aufgabe kontrolliert. Statt am Ende des Monats einen Fehler auf Seite eins zu bemerken, siehst du ihn sofort und kannst ihn beheben.
🤓 Expert Deep Dive
Effektives CI basiert auf der Testpyramide: viele Unittests (Millisekunden), weniger Integrationstests (Sekunden), minimale E2E-Tests (Minuten). CI funktioniert am besten mit Trunk-Based Development. CI ist die Voraussetzung für CD (Continuous Delivery/Deployment).
❓ Häufig gestellte Fragen
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.