🚀

CI/CD

👨‍🍳 Chef

Automatización de deploys

CI/CD ejecuta tests y despliega automáticamente cuando haces push.


CI vs CD

FaseQué hace
CI (Continuous Integration)Tests automáticos
CD (Continuous Deployment)Deploy automático

GitHub Actions

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm test

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy to VPS
        run: |
          ssh user@server "cd /app && git pull && docker compose up -d --build"

Secretos

env:
  API_KEY: ${{ secrets.API_KEY }}

Configura en: Settings → Secrets → Actions


Buenas prácticas

PrácticaPor qué
Tests antes de deployNo romper producción
Branch protectionReview obligatorio
Rollback fácilVolver rápido si falla

Practica

CI/CD con GitHub Actions