Si “CI/CD” suena como algo que deberías saber pero no sabes por dónde empezar, esta guía es para ti. GitHub Actions hace que la integración y entrega continuas sean accesibles para todos los que tienen un repositorio de GitHub.
¿Qué es GitHub Actions?
GitHub Actions es una plataforma CI/CD integrada directamente en GitHub. Te permite automatizar pruebas, compilaciones y despliegues directamente desde tu repositorio. Los flujos de trabajo se activan con pushes, pull requests o eventos programados.
1. Conceptos básicos del flujo de trabajo
Coloca un archivo YAML dentro de .github/workflows/ para definir tu flujo de trabajo.
.github/
└── workflows/
└── ci.yml
Aquí está la estructura básica:
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configurar Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
Elementos clave
| Elemento | Descripción |
|---|---|
name | Nombre del flujo de trabajo mostrado en GitHub |
on | Eventos desencadenantes (push, pull_request, schedule, etc.) |
jobs | Colección de trabajos que pueden ejecutarse en paralelo |
runs-on | Entorno del ejecutor (ubuntu-latest, windows-latest, macos-latest) |
steps | Tareas individuales dentro de un trabajo |
uses | Reutilizar una acción existente |
run | Ejecutar un comando de shell directamente |
2. Variantes de activación
# Al hacer push
on: push
# Al hacer pull request
on: pull_request
# Programado (cron)
on:
schedule:
- cron: '0 9 * * 1' # Cada lunes a las 9:00 UTC
# Activación manual
on:
workflow_dispatch:
3. Uso de acciones del Marketplace
Miles de acciones están disponibles en GitHub Marketplace. Estas son las más comunes:
- uses: actions/checkout@v4 # Clonar repositorio
- uses: actions/setup-node@v4 # Configurar Node.js
- uses: actions/setup-python@v5 # Configurar Python
- uses: docker/login-action@v3 # Iniciar sesión en registro Docker
- uses: actions/cache@v4 # Cachear dependencias
- uses: actions/upload-artifact@v4 # Subir artefactos de compilación
4. Compilaciones en matriz para pruebas paralelas
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm test
Son seis combinaciones ejecutándose automáticamente.
5. Secretos y variables de entorno
Almacena claves API y contraseñas en Settings → Secrets and variables → Actions en GitHub.
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: deploy.sh
env:
API_KEY: ${{ secrets.API_KEY }}
DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
Nunca escribas secretos directamente en tus archivos YAML.
6. Cacheo de dependencias
Cachear node_modules o ~/.npm puede acelerar significativamente tus flujos de trabajo.
- name: Cachear módulos de Node
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
7. Ejemplo de despliegue (GitHub Pages)
name: Desplegar en GitHub Pages
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run build
- uses: actions/configure-pages@v4
- uses: actions/upload-pages-artifact@v3
with:
path: ./out
- uses: actions/deploy-pages@v4
Resumen
GitHub Actions es una de las herramientas CI/CD más fáciles para empezar — solo coloca un archivo YAML en .github/workflows/. Comienza con un simple flujo de trabajo de “ejecutar pruebas al hacer push”, luego explora gradualmente compilaciones en matriz, cacheo y despliegues automatizados.

