5 mejores prácticas de GitLab CI/CD para pipelines más rápidos
Después de años trabajando con GitLab CI/CD en varios proyectos, aquí hay cinco prácticas que consistentemente entregan pipelines más rápidos y confiables.
1. Usar caché inteligentemente
Cachear dependencias entre jobs para evitar re-descargarlas cada vez:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
La key asegura que diferentes ramas tengan cachés separados.
2. Paralelizar tus tests
Dividir tu suite de tests en múltiples jobs:
test:
parallel: 4
script:
- npm run test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
Esto puede reducir el tiempo de test de 20 minutos a 5 minutos.
3. Usar rules: en lugar de only/except
La nueva sintaxis rules: es más potente y legible:
deploy:
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: on_success
- when: never
4. Optimizar imágenes Docker
Usar imágenes base pequeñas y builds multi-stage. Las imágenes basadas en Alpine pueden ser 10x más pequeñas que las basadas en Ubuntu.
5. Fallar rápido
Poner verificaciones rápidas (linting, formateo) al inicio del pipeline. No tiene sentido ejecutar una suite de tests de 20 minutos si el código ni siquiera compila.
¿Cuáles son tus optimizaciones CI/CD favoritas? Nos encantaría escucharlas.