Comment configurer la mise en cache des builds d'intégration continue (CI)
Pour améliorer les performances de build, Next.js enregistre un cache dans .next/cache
qui est partagé entre les builds.
Pour tirer parti de ce cache dans les environnements d'intégration continue (CI), votre workflow CI devra être configuré pour persister correctement le cache entre les builds.
Si votre CI n'est pas configuré pour persister
.next/cache
entre les builds, vous pourriez voir une erreur No Cache Detected (Aucun cache détecté).
Voici quelques exemples de configurations de cache pour les principaux fournisseurs de CI :
Vercel
La mise en cache de Next.js est automatiquement configurée pour vous. Aucune action n'est requise de votre part. Si vous utilisez Turborepo sur Vercel, apprenez-en plus ici.
CircleCI
Modifiez votre étape save_cache
dans .circleci/config.yml
pour inclure .next/cache
:
Si vous n'avez pas de clé save_cache
, veuillez suivre la documentation de CircleCI sur la configuration de la mise en cache des builds.
Travis CI
Ajoutez ou fusionnez ce qui suit dans votre .travis.yml
:
GitLab CI
Ajoutez ou fusionnez ce qui suit dans votre .gitlab-ci.yml
:
Netlify CI
Utilisez les Netlify Plugins avec @netlify/plugin-nextjs
.
AWS CodeBuild
Ajoutez (ou fusionnez) ce qui suit dans votre buildspec.yml
:
GitHub Actions
En utilisant actions/cache de GitHub, ajoutez l'étape suivante dans votre fichier de workflow :
Bitbucket Pipelines
Ajoutez ou fusionnez ce qui suit dans votre bitbucket-pipelines.yml
au niveau supérieur (même niveau que pipelines
) :
Puis référencez-le dans la section caches
de l'étape de votre pipeline :
Heroku
En utilisant le cache personnalisé de Heroku, ajoutez un tableau cacheDirectories
dans votre package.json de niveau supérieur :
Azure Pipelines
En utilisant la tâche Cache d'Azure Pipelines, ajoutez la tâche suivante à votre fichier yaml de pipeline quelque part avant la tâche qui exécute next build
:
Jenkins (Pipeline)
En utilisant le plugin Job Cacher de Jenkins, ajoutez l'étape de build suivante à votre Jenkinsfile
là où vous exécuteriez normalement next build
ou npm install
: