Le flux de travail de déploiement Drupal de Dries Buytaert
Je voulais décrire le workflow de développement et de déploiement que j'utilise sur dri.es , mon site personnel.
Mon site utilise Drupal (évidemment) et fonctionne sur Nuage Acquia (bien sûr), mais il s'agit en grande partie d'une pratique exemplaire pour toute application Web.
Je gère le code et la configuration de mon site Web dans Gite . Chaque fois que je valide une modification dans mon référentiel Git, je passe par les étapes suivantes :
- Je crée un environnement intermédiaire pour tester mon code avant de le déployer en production. C'est un environnement de staging complet : non seulement PHP, MySQL et Nginx, mais aussi Varnish, Memcache, etc.
- Je consulte mon dépôt Git. Mon référentiel Git héberge uniquement mes fichiers personnalisés. C'est une bonne pratique de ne pas valider le noyau Drupal ou les modules Drupal tiers dans votre référentiel Git.
- je cours Renifleur de code PHP pour m'assurer que mon code est conforme à mes règles de style de codage. Je spécifie mes règles de style de codage dans
phpcs.xml
et utilisephpcs
pour m'assurer que mon code y adhère. Sinon,phpcbf
essaie de réparer mon code automatiquement. J'aime mon code bien rangé. - je cours PHP Stan , un outil d'analyse de code statique pour PHP, qui analyse ma base de code à la recherche de bogues. Il trouvera du code mort, des problèmes de conversion de type, des arguments de fonction incorrects, des indications de type manquantes, des appels de fonction inconnus, et bien plus encore. PHPStan est un outil fantastique.
- je cours Unité PHP , un framework de test PHP, pour s'assurer que mes tests unitaires réussissent.
- je cours audit de sécurité phpcs , un outil d'analyse de code statique pour PHP. Il scanne mon code PHP pour les vulnérabilités de sécurité et les faiblesses de sécurité.
- je cours ESLint , un outil d'analyse de code statique pour JavaScript. Il analyse mon code JavaScript à la recherche de vulnérabilités et de faiblesses en matière de sécurité.
- je cours nodejs-scan pour trouver des modèles de code non sécurisés dans mes applications Node.js. Je n'utilise pas Node.js pour le moment.
- je cours aussi SemgrepName , un outil d'analyse de code statique pour une variété de langages de programmation.
- je cours Recteur pour m'assurer que je n'utilise pas code Drupal obsolète . Lorsque je le ferai, Rector essaiera de mettre à jour par programme tout code obsolète qu'il trouve.
- Comme mon référentiel Git ne contient que des fichiers personnalisés, j'utilise Compositeur pour télécharger et installer la dernière version de Drupal et de tous les modules et composants tiers.
- je cours
drush pm:sécurité
.Drush est un outil spécifique à Drupal, et lepm:sécurité
l'option vérifie que j'ai aucune dépendance non sécurisée installée .
Tout cela peut sembler beaucoup de travail à mettre en place, et cela peut l'être. Pour les clients et partenaires Acquia, Acquia CodeStudio automatise toutes les étapes ci-dessus. Acquia Code Studio est un CI/CD entièrement géré basé sur Gitlab , avec des étapes spécifiques optimisées pour Drupal. En plus de 20 ans de travail sur Drupal, c'est mon meilleur opérations Web flux de travail encore. Cela ne pourrait pas être plus facile.
Acquia Code Studio s'occupe également d'automatiser les mises à jour des dépendances. Code Studio vérifie régulièrement si Drupal ou l'une de ses dépendances a une nouvelle version disponible. S'il y a une nouvelle version, elle exécutera toutes les étapes ci-dessus. Lorsque tout des outils ci-dessus, Acquia Code Studio peut déployer un nouveau code en production en un seul clic.
Je l'aime!
—
Cet article a été initialement publié ici . Pour en savoir plus sur Drupal et Acquia, visitez cette page .