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

3 1 2

¿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!

 

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay