técnica
etapa: deliver
2 min de lectura
Pipelines de CI que siguen siendo rápidos
Un pipeline en el que la gente confía es rápido, determinista y claro cuando falla. Uno lento o inestable enseña al equipo a ignorarlo.
GitHub ActionsGitLab CIBuildkiteBuildKit cacheRenovateact (run workflows locally)
Anatomía
- Trigger: un push, un pull request, un tag o una programación.
- Los jobs corren en runners nuevos; cada job está aislado, así que comparte datos mediante artefactos y cachés, no a través de la máquina.
- Los stages ordenan el trabajo: lint y pruebas unitarias primero (rápidas, baratas), luego pruebas de integración, luego build y publicación del artefacto.
- Gates: las verificaciones obligatorias deben pasar antes del merge.
- Los entornos y las aprobaciones protegen el despliegue en destinos sensibles.
Un ejemplo de pipeline
Falla rápido con verificaciones baratas, ejecuta jobs independientes en paralelo, cachea las dependencias, cancela las ejecuciones superadas y mantén los permisos al mínimo.
name: ci
on:
pull_request:
push: { branches: [main] }
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
lint-test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@<full-commit-sha>
- uses: actions/setup-node@<full-commit-sha>
with: { node-version: 22, cache: npm }
- run: npm ci
- run: npm run lint && npm test
build:
needs: lint-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@<full-commit-sha>
- run: docker build -t app:${{ github.sha }} .Mantenerlo rápido y confiable
- Cachea las dependencias y las capas de build, usando el lockfile como clave.
- Ejecuta las pruebas en paralelo y divide las suites lentas; pon en cuarentena las pruebas inestables y corrígelas, nunca reintentes a ciegas.
- Define timeouts para que un job colgado no bloquee la cola.
- Haz los builds reproducibles: herramientas fijadas, lockfiles, sin sorpresas de red.
- Trata el pipeline como código de producción: revísalo, prueba los cambios y dale el (ver el dominio Security engineering).
Leer una falla
Un job que falla debe decir qué se rompió en su primera pantalla. Muestra la prueba que falló y el comando que la reproduce localmente. Si la gente necesita preguntar "¿por qué el CI está en rojo?", al pipeline le falta información.
conexiones en el mapa
- Flujos de Git y code reviewdisparaPipelines de CI que siguen siendo rápidos
- El ciclo de vida de la entregaes automatizado porPipelines de CI que siguen siendo rápidos
- Pipelines de CI que siguen siendo rápidosentrega artefactos aEstrategias de release y rollback
actualizado el 14/10/2026 · fuentes para profundizar · reportar un error
en otros dominios
- Hardening de CI/CDsecengun pipeline que funciona también debe ser un pipeline confiable
- CI/CDappsecdónde encaja cada verificación de seguridad en el pipeline
Estudia antes
Desbloquea
pon a prueba lo que entendiste
Cargando preguntas…