DEV Community

Cover image for ¿Qué es CI/CD y cómo puede acelerar tus despliegues en minutos?
Israel Oña Ordoñez 🚀
Israel Oña Ordoñez 🚀

Posted on

¿Qué es CI/CD y cómo puede acelerar tus despliegues en minutos?

📝 TL;DR

CI/CD (integración continua y despliegue continuo) automatiza el proceso de integración del código, pruebas y despliegue. Gracias a CI/CD reduces errores humanos, aumentas la velocidad de entrega y aseguras una mayor calidad del software. En este artículo verás qué es, cómo funciona y un ejemplo para llevar a cabo.

 

🤔 ¿Qué es CI/CD?

CI/CD se refiere a Integración Continua (CI) y Despliegue Continuo (CD). Es un elemento imprescindible en las prácticas de DevOps que permite acelerar el ciclo de vida de desarrollo del software.

  • Integración Continua (CI): En el momento en que un programador sube un commit al repositorio central, se combina este código nuevo para probar sus cambios, si alguna prueba falla se obtiene una alerta temprana.
  • Despliegue Continuo (CD): Automatiza el proceso de despliegue de una aplicación en un entorno de pruebas o producción de forma rápida.

 

🔧 Ejemplo: Pipeline con GitHub Actions

Objetivo: Configurar un pipeline de CI/CD que:

  1. Construya y pruebe tu aplicación automáticamente.
  2. Despliegue los archivos estáticos en GitHub Pages.

Flujo del pipeline:

Diagrama de flujo

Archivo YAML: .github/workflows/cicd.yml

name: CI/CD demo on: push: branches: - master jobs: build: runs-on: ubuntu-24.04 permissions: id-token: write steps: - name: Checkout uses: actions/checkout@v4 - name: Configure Node.js uses: actions/setup-node@v4 with: node-version: "18" - name: Install dependencies run: npm install - name: Run tests run: npm test - name: Build run: npm run build - name: Upload static files as artifact uses: actions/upload-pages-artifact@v3 with: name: github-pages path: ./dist deploy: runs-on: ubuntu-24.04 needs: build environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} permissions: id-token: write pages: write steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 with: artifact_name: github-pages 
Enter fullscreen mode Exit fullscreen mode

Ejecución del pipeline:

GitHub Actions pipeline

Explicación:

  1. Build:
    • Checkout: Descarga el código del repositorio.
    • Configure Node.js: Configura Node.js v18.
    • Install dependencies: Instala dependencias con npm install.
    • Run tests: Corre los tests con npm test.
    • Build: Genera los archivos estáticos con npm run build.
    • Upload static files as artifact: Sube los archivos generados en ./dist como artefacto estático.
  2. Deploy:
    • Deploy to GitHub Pages: Utiliza los artefactos generados para desplegar automáticamente en GitHub Pages.

 

📂 Repositorio del proyecto

Para seguir este ejemplo de CI/CD con GitHub Actions, puedes clonar o explorar el repositorio asociado.

Repositorio: https://github.com/israoo/basic-ci-cd-github-actions

Este repositorio contiene:

  • Código fuente de la aplicación de ejemplo.
  • Archivo de configuración del pipeline (cicd.yml).
  • Instrucciones detalladas en el archivo README.md sobre cómo configurar y ejecutar el pipeline paso a paso.

 

📈 Beneficios clave del CI/CD

  • Despliegues más rápidos y frecuentes: Reduces el tiempo entre desarrollo y entrega.
  • Detección temprana de errores: Las pruebas automáticas alertan sobre problemas antes de llegar a producción.
  • Reducción de errores manuales: Todo el proceso está automatizado.
  • Mayor confianza y calidad: Cada cambio pasa por pruebas antes de ser desplegado.

En pocas palabras: Menos dolores de cabeza y más despliegues.

 

💡 Comparación: CI/CD vs. Flujos de trabajo tradicionales

Aspecto Flujo tradicional CI/CD
Integración de código Manual y ocasional Continua y automática
Pruebas Ejecutadas manualmente Automatizadas en cada cambio
Despliegue Proceso manual y propenso a errores Automatizado y confiable
Frecuencia de entregas Poco frecuente (semanas/meses) Frecuente (diario o incluso por hora)

 

🔗 Referencias/Extras

 

🚀 ¿Qué sigue?

¿Te gustaría ver un pipeline CI/CD más avanzado o con despliegue a otra plataforma? ¡Dímelo en los comentarios!

 

Top comments (0)