¿Qué es CI/CD y cómo implementarlo?
CI/CD automatiza el proceso de testear y desplegar código. En lugar de deploys manuales con riesgo de error, tu código se testea y despliega automáticamente con cada push.
¿Qué es CI (Integración Continua)?
CI es la práctica de integrar código frecuentemente (varias veces al día) en un repositorio compartido. Cada integración se verifica con tests automáticos para detectar errores temprano, antes de que lleguen a producción.
¿Qué es CD (Despliegue Continuo)?
CD extiende CI: después de pasar los tests, el código se despliega automáticamente a producción (o a staging para aprobación manual). Reduce el tiempo entre escribir código y que los usuarios lo usen.
¿Por qué importa?
Sin CI/CD: deploys manuales, propensos a errores, que dan miedo. Con CI/CD: deploys frecuentes, automáticos, reversibles. Los equipos que usan CI/CD despliegan 200x más frecuentemente con 3x menos fallos.
Herramientas populares
GitHub Actions (integrado con GitHub, gratis para repos públicos), GitLab CI (integrado con GitLab), Jenkins (self-hosted, muy configurable), CircleCI, y ArgoCD (para Kubernetes). Para la mayoría, GitHub Actions es la opción más simple.
Tu primer pipeline
Un pipeline básico: 1) Trigger en push a main. 2) Checkout del código. 3) Instalar dependencias. 4) Correr tests. 5) Build de la aplicación. 6) Deploy al servidor (SSH + rsync, Docker push, o similar).
Deploy a un VPS con GitHub Actions
Configurá un secret con tu clave SSH en GitHub. En el workflow, usá ssh-action para conectarte al VPS y ejecutar: git pull, instalar deps, build, y reiniciar el servicio. Simple y efectivo para proyectos pequeños-medianos.
Buenas prácticas
Tests rápidos (< 5 min), pipeline que falla rápido (fail fast), notificaciones en Slack/Discord cuando falla, rollback automático si el health check falla post-deploy, y nunca deployar los viernes.