📝 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:
- Construya y pruebe tu aplicación automáticamente.
- Despliegue los archivos estáticos en GitHub Pages.
Flujo del pipeline:
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
Ejecución del pipeline:
Explicación:
- 
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.
 
- 
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
- Documentación oficial de GitHub Actions
- Más ejemplos de pipelines CI/CD
- ¿Qué es la CI/CD?
- Comprensión de la CI/CD
🚀 ¿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)