Integración Continua (CI)

Práctica de desarrollo en la que los desarrolladores fusionan cambios de código varias veces al día en un repositorio compartido, verificando cada fusión automáticamente.

CI fue formalizada por Grady Booch en 1991 y popularizada por Kent Beck en Extreme Programming. Pipeline típico: activador → build → pruebas → lint/escaneo → informe. Plataformas: GitHub Actions, GitLab CI/CD, Jenkins, CircleCI.

        graph LR
  Center["Integración Continua (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;

      

🧒 Explícalo como si tuviera 5 años

La CI es como un profesor inteligente que revisa tu tarea cada vez que terminas un ejercicio. En lugar de esperar al final del mes para descubrir un error, lo sabes en segundos y lo corriges de inmediato.

🤓 Expert Deep Dive

La CI eficaz se basa en la pirámide de pruebas (muchas pruebas unitarias, pocas E2E) y funciona mejor con el Trunk-Based Development. Es el requisito previo para el CD (Entrega/Despliegue Continuo).

❓ Preguntas frecuentes

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.

📚 Fuentes