GitHub Actions: CI/CD Integrado en tu Repositorio
GitHub Actions es la plataforma de CI/CD mas popular en 2025, especialmente en el ecosistema open source y startups de LATAM. Permite automatizar builds, tests, deploys y cualquier workflow directamente desde tu repositorio.
# .github/workflows/ci-cd.yml
name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: test_db
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm run test -- --coverage
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage/
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to production
run: |
echo 'Deploying to production...'
# ssh, rsync, or cloud CLI deploy| Concepto | Descripcion |
|---|---|
| Workflow | Archivo YAML que define el pipeline completo |
| Job | Conjunto de steps que corren en la misma maquina |
| Step | Accion individual (checkout, build, test, deploy) |
| Action | Paquete reutilizable de steps (ej: actions/checkout) |
| Secret | Variable encriptada para credenciales |
| Matrix | Ejecutar el mismo job con diferentes configuraciones |
🚀 Dato Clave
GitHub Actions ofrece 2,000 minutos gratis/mes para repositorios privados. Para startups LATAM, esto es mas que suficiente para empezar. Los runners de Linux son los mas baratos (1x multiplicador).
En la siguiente leccion veremos estrategias avanzadas de deployment.