Que faut-il vraiment cacher dans un pipeline CI/CD ?
Posté le 11 mars 2026 • 4 min de lecture • 809 motsMettre du cache dans un pipeline CI/CD ne consiste pas à stocker des fichiers au hasard. Cet article propose une grille de lecture pragmatique pour comprendre quoi cacher, pourquoi, et comment éviter un cache fragile ou contre-productif.

Quand on cherche à accélérer un pipeline CI/CD, la première idée qui vient presque toujours est :
« il faut mettre du cache »
Mais très vite, une autre question apparaît :
qu’est-ce qu’on cache exactement ?
Des fichiers ? Des dossiers ? Des images Docker ? Des dépendances ?
Et surtout : quel cache a un vrai impact, et lequel complique juste le système ?
Cet article propose une grille de lecture simple et pragmatique pour répondre à cette question.
Beaucoup de pipelines commencent comme ça :
node_modules.pnpm-store ou .npmRésultat :
Le problème n’est pas le cache en soi.
Le problème, c’est ce qu’on essaie de cacher.
Un pipeline CI/CD n’est pas une suite de fichiers, c’est une suite de tâches :
Chaque cache utile correspond à une tâche bien définie, avec :
Si les entrées n’ont pas changé, le travail n’a pas besoin d’être refait.
C’est cette logique qui doit guider tout cache efficace.
Il évite de retélécharger ce qui existe déjà. C’ est à faire quasiment toujours.
Exemples :
Valeur
Limite
Il est un excellent candidat, très souvent oublié, et pourtant très rentable.
Exemples :
Valeur
Condition clé
C’est là que les choses deviennent intéressantes… et délicates.
Exemples :
Valeur
Risque
Bonne pratique
Il est très utile, mais demande de la discipline.
Souvent contre-intuitif, mais parfois pertinent. Il est à utiliser avec discernement.
Exemples :
Valeur
Attention
Le cache Docker est linéaire. Il est excellent pour le packaging mais mauvais comme cache principal de logique applicative :
Ce que Docker cache bien
Ce que Docker ne sait pas faire
Un pipeline efficace cache :
| Type de travail | Cache recommandé |
|---|---|
| Téléchargement | Oui |
| Codegen | Oui |
| Build par projet | Oui |
| Tests déterministes | Parfois |
| Images Docker | Oui (mais pas seul) |
Mais surtout : chaque cache doit correspondre à une tâche explicite, pas à un dossier arbitraire.
Parce qu’ils empilent :
Sans jamais répondre à la question fondamentale :
Quel travail est-ce que j’essaie d’éviter de refaire ?
Quand cette réponse n’est pas claire, le cache devient :
Un bon cache CI/CD a une propriété simple :
Un développeur peut prédire ce qui sera réutilisé sans lire la configuration CI.
Si ce n’est pas le cas, le cache est trop implicite.
Mettre du cache dans un pipeline CI/CD n’est pas une question d’outil.
C’est une question de modélisation du travail.
Les outils viennent après. Toujours.