Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

CI/CD

CI/CD —Integración Continua y Entrega/Despliegue Continuo— es la práctica de automatizar la integración, testing y despliegue de código para entregar cambios rápido y con confianza.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • CI/CD as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

CI/CD automatiza el camino del código desde el commit hasta producción:

  • Continuous Integration (CI): cada push a una rama principal dispara builds y tests automáticos. Si algo falla, el equipo se entera en minutos. El objetivo es integrar frecuentemente y detectar problemas temprano.
  • Continuous Delivery (CD): cada cambio que pasa CI está listo para ser desplegado con un botón. El deploy es manual pero el artefacto ya fue validado.
  • Continuous Deployment: cada cambio que pasa CI se despliega automáticamente a producción sin intervención humana.

Alcance y supuestos

Cubre CI/CD como práctica, la diferencia entre delivery y deployment continuo, y herramientas. Asume familiaridad con control de versiones.

Modelo mental

Una línea de producción en una fábrica. Cada pieza —commit— pasa por estaciones de control de calidad —tests, linting, security scans—. Si pasa todas, sigue a empaquetado y envío —deploy—. Si falla en alguna, se devuelve al remitente con un informe de qué falló.

Uso práctico

  • ✅ Todo proyecto con más de un desarrollador.
  • ❌ Proyectos personales de una persona sin usuarios reales: CI sí, CD quizás no.

Ejemplo trabajado: pipeline con GitHub Actions

on: push
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - run: ./deploy.sh

Evidencia

  • Wikipedia, CI/CD documenta la evolución de las prácticas y la diferencia entre delivery y deployment continuo.

Fuentes citadas