saltar al contenido
volver al mapa
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.

.github/workflows/ci.ymlyaml
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.

Mínimo privilegioleast privilegePrincipio de darle a cada identidad solo los permisos estrictamente necesarios para su función, y nada más. Es lo opuesto a 'usuario admin por defecto': cada rol extra es un camino más que un atacante puede usar después de un compromiso.ver en el glosario →

conexiones en el mapa

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…