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)