📝 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)