Caché y artefactos
Dos mecanismos distintos, a menudo confundidos, con efectos muy diferentes.
En un proyecto JavaScript de tamaño medio, npm ci tarda entre sesenta y ciento veinte segundos. Multiplíquelo por el número de jobs de su workflow, por el número de commits al día y por el número de personas del equipo: es el principal gasto de tiempo de una cadena de integración continua, y no verifica nada. En cada ejecución vuelve a descargar paquetes que no han cambiado en tres semanas.
La caché y los artefactos responden a dos necesidades que se confunden constantemente. La caché sirve para no repetir un trabajo cuyo resultado es reconstruible: dependencias descargadas, objetos de compilación intermedios. Es desechable por naturaleza: si la caché desaparece, la cadena funciona, simplemente más despacio. El artefacto sirve para transportar un resultado que se quiere conservar o transmitir: un ejecutable compilado, un informe de tests, una captura de pantalla de un test que ha fallado. Usar un artefacto como caché produce ejecuciones lentas y un almacenamiento saturado; usar una caché para transportar un binario produce fallos intermitentes el día en que la caché no está.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión