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