Lors du déploiement d'un projet Drupal avec une pipeline de déploiement continu, il est souvent nécessaire de reconstruire le cache Drupal afin qu'il prenne en compte les dernières modifications de fichiers.
Problème : même si la reconstruction du cache permet de s'assurer d'avoir les dernières modifications côté serveur, il peut entraîner une lenteur supplémentaire au premier chargement des pages le temps que Drupal reconstruise le cache HTML des différentes pages, vues, etc.
Le projet Drupal Warmer
Le module Warmer permet de résoudre ce problème. Selon une planification via la tâche CRON ou manuellement, il permet de réchauffer le cache Drupal d'une liste d'URLs définies manuellement ou automatiquement via la récupération des URLs d'un sitemap.
Une fois ces urls définies, le module charge chaque page associée permettant ainsi une nouvelle mise en cache de celles-ci et un temps de chargement rapide pour leurs prochaines visites.
Intégration du module Drupal Warmer à une pipeline GitHub Actions
Dans un précédent article, j'ai expliqué comment je déployais mes projets Drupal avec GitHub Actions.
Voici une étape supplémentaire à ajouter pour réchauffer le cache Drupal via Drush et l'utilisation du module Warmer :
- name: Warm cache
run: ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_HOST }} "cd /var/www/html && vendor/bin/drush warmer:enqueue entity,sitemap && vendor/bin/drush queue-run warmer"