CI/CD


¿Qué es CI/CD?

CI/CD son las siglas de Continuous Integration (Integración Continua) y Continuous Delivery/Deployment (Entrega/Despliegue Continuo). Son un conjunto de prácticas y herramientas que automatizan el proceso de llevar el código desde el repositorio hasta producción, pasando por pruebas automáticas.

En lugar de integrar y desplegar de forma manual y esporádica, CI/CD lo hace de forma automática y constante, detectando errores antes y reduciendo el riesgo de cada publicación.


CI vs CD: ¿cuál es la diferencia?

¿Qué hace?¿Cuándo?
CI (Integración Continua)Construye y prueba el código automáticamente cada vez que alguien hace un pushEn cada commit o pull request
CD Delivery (Entrega Continua)Prepara el artefacto listo para desplegar, pero requiere aprobación manualTras pasar la CI
CD Deployment (Despliegue Continuo)Despliega automáticamente a producción si todos los tests pasanSin intervención humana

¿Para qué sirve?

Sin CI/CD, integrar el trabajo de varios desarrolladores es arriesgado: los conflictos se acumulan, los bugs se descubren tarde y los despliegues son eventos estresantes que se evitan todo lo posible.

CI/CD resuelve esto haciendo que cada pequeño cambio pase por un pipeline automático que:

  • Compila el proyecto y detecta errores de sintaxis o dependencias
  • Ejecuta los tests unitarios, de integración y end-to-end
  • Analiza la calidad del código (linting, cobertura)
  • Construye el artefacto final (build de producción, imagen Docker, etc.)
  • Despliega en staging o producción según la configuración

Ejemplo: pipeline con GitHub Actions

GitHub Actions es una de las herramientas más populares para CI/CD en proyectos web. Se configura con un archivo YAML en .github/workflows/:

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout del código
        uses: actions/checkout@v4

      - name: Instalar Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Instalar dependencias
        run: npm ci

      - name: Linting
        run: npm run lint

      - name: Tests
        run: npm run test

      - name: Build
        run: npm run build

Con esto, cada vez que alguien abre un pull request o hace push, GitHub ejecuta este pipeline automáticamente y avisa si algo falla antes de mergear.


Herramientas más usadas

HerramientaDescripción
GitHub ActionsIntegrado en GitHub, gratis para repos públicos
GitLab CI/CDIntegrado en GitLab, muy potente
JenkinsOpen source, muy configurable, requiere infraestructura propia
CircleCISaaS, rápido y fácil de configurar
Vercel / NetlifyCI/CD automático orientado a frontend

Conceptos relacionados

Docker Git npm Kubernetes

Conclusión

CI/CD transforma los despliegues de eventos arriesgados y poco frecuentes en operaciones rutinarias y seguras. Adoptar un pipeline básico, aunque sea solo con tests y build automático, mejora inmediatamente la calidad del código y la confianza del equipo para publicar cambios.