Automatización de deploys
CI/CD ejecuta tests y despliega automáticamente cuando haces push.
CI vs CD
| Fase | Qué 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áctica | Por qué |
|---|---|
| Tests antes de deploy | No romper producción |
| Branch protection | Review obligatorio |
| Rollback fácil | Volver rápido si falla |