Qué es la integración continua
La integración continua (CI) consiste en integrar y verificar el código con frecuencia y de forma automática. Cada vez que alguien sube cambios, un servidor ejecuta una serie de comprobaciones para detectar errores pronto, antes de que lleguen a producción.
Un pipeline de CI típico, en orden, es:
- Instalar las dependencias (
npm ci). - Lint: revisar el estilo y errores estáticos.
- Test: ejecutar las pruebas automáticas.
- Build: compilar/empaquetar la aplicación.
Si cualquier paso falla, el pipeline se detiene y se marca el commit como roto. Así nadie integra código que no compila o que rompe las pruebas.
GitHub Actions
GitHub Actions ejecuta estos pipelines dentro del propio repositorio. Su vocabulario:
- Workflow: un proceso automatizado descrito en un fichero YAML dentro de
.github/workflows/. - Trigger (
on): el evento que dispara el workflow (unpush, unpull_request, un horario...). - Job: un conjunto de pasos que corren en una máquina (runner). Varios jobs pueden correr en paralelo.
- Step: cada acción dentro de un job (ejecutar un comando o usar una
action reutilizable con
uses).
Un workflow de CI
name: CI
# Trigger: se ejecuta en cada push y en cada pull request
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci # instalar
- run: npm run lint # lint
- run: npm test # test
- run: npm run build # build
Lee de arriba abajo: en cada push a main o en cada pull_request, GitHub
arranca un runner Ubuntu, descarga el código (checkout), prepara Node y
ejecuta instalar → lint → test → build. Si un run devuelve un código de
salida distinto de cero, el job falla y el resto no continúa.
La CI es tu red de seguridad: convierte "se me olvidó probarlo" en una comprobación automática que no se puede saltar.