GitHub Actions y CI/CD
GitHub Actions permite automatizar cualquier flujo de trabajo directamente en tu repositorio. CI/CD (Integración Continua / Entrega Continua) corre tests automáticamente en cada push, construye la app y la despliega si pasa. Esto garantiza que el código en main siempre funcione y que cada cambio llegue a producción en minutos.
Los workflows se definen en archivos YAML en .github/workflows/. Cada archivo define cuándo se dispara (on: push, pull_request), en qué entorno corre (runs-on: ubuntu-latest) y qué pasos ejecuta (steps: con comandos shell o Actions preconstruidas). GitHub ofrece 2000 minutos gratuitos al mes para repositorios públicos y privados.
# .github/workflows/ci.yml
name: CI - Tests y Linting
# Triggers: cuándo ejecutar este workflow
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
name: Tests y Linting
runs-on: ubuntu-latest # Runner de GitHub
steps:
# Clonar el repositorio
- name: Checkout código
uses: actions/checkout@v4
# Configurar Node.js
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
# npm ci: instalación limpia y determinista
- name: Instalar dependencias
run: npm ci
- name: Ejecutar linting
run: npm run lint
- name: Ejecutar tests
run: npm test
- name: Build de producción
run: npm run build
# Usar secretos del repositorio
- name: Deploy
env:
API_KEY: ${{ secrets.DEPLOY_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run deploy
Practica esta lección
Resuelve los ejercicios del curso de Git y GitHub en la app, gratis y con corrección automática.
Empezar a practicar