8. CONCEVONS UN « BUILD PIPELINE » POUR D7
Déploiemen
t en
intégration
Déploiemen
t en Pré
Prod
Intégration
continue
Déploiemen
t en
production
Commit
Recette
développeu
r
Recette
métier
Validation
finale
13. ON UTILISE FEATURES ET LES HOOK_UPDATE
Dans notre cas, 7 features :
Pour le contenu
Pour les contextes
Pour les filtres
Pour les images
Pour les menus
Pour les rôles
Pour les vues
17. ZOOM SUR L’INTÉGRATION CONTINUE
100% automatisée : Jenkins l’active après chaque commit sur la branche
master de notre GIT
Déploiement en environnement de développement
Validation du déploiement (smoke tests)
Lancement des tests d’intégration automatisés
18. ZOOM SUR LE DÉPLOIEMENT EN INTÉGRATION
Lancement manuel suite à une validation manuelle des développeurs:
Sauvegarde de la configuration
Commit sur la branche « DEV »
Merge sur la branche « INT »
Déploiement en environnement d’intégration
Validation du déploiement
19. ZOOM SUR LE DÉPLOIEMENT EN PRÉ-PROD
Lancement manuel suite à une validation manuelle du métier:
Merge sur la branche « PP »
Déploiement en environnement de pré-production
Validation du déploiement
20. ZOOM SUR LE DÉPLOIEMENT EN PRODUCTION
Lancement manuel par l’équipe de développement suite à un GO du chef de
projet
Merge sur la branche « PROD »
Déploiement en environnement de production
Validation du déploiement
21. ET LA QUALITÉ DU CODE, ÇA FAIT PAS PARTIE
DU PIPELINE ?
22. NON, MAIS C’EST PRIS EN COMPTE !
Revue de code automatisé
Revue de code de l’équipe hebdomadaire
Tests de performance en continue
25. LE DÉPLOIEMENT EN INTÉGRATION
Lancement manuel
Sauvegarde de la configuration -> Features Update
Commit sur la branche « DEV » -> Git commit
Merge sur la branche « INT » -> Git merge
Déploiement en environnement d’intégration ->
Capistrano
Validation du déploiement -> PHPUnit
+ Curl
26. LE DÉPLOIEMENT EN PRÉ-PROD
Lancement manuel
Merge sur la branche « PP » -> Git
merge
Déploiement en environnement de pré-production -> Capistrano
Validation du déploiement -> PHPUnit
+ Curl
27. LE DÉPLOIEMENT EN PRODUCTION
Lancement manuel par l’équipe de développement suite à un GO du chef de
projet
Merge sur la branche « PROD » -> Git Merge
Déploiement en environnement de production ->
Capistrano
Validation du déploiement ->
PHPUnit + Curl
28. LA QUALITÉ DU CODE
Revue de code automatisé
-> Coder, LINT, PHPMD, PHPCD
Tests de performances
-> JMETER
30. SUR N SERVEURS EN PARALLÈLE…
Enchainement d’actions sur le gestionnaire de source, le système de
fichiers et sur drupal
- Sauvegarde de l’ancienne version
- Installation des fichiers
- Désactivation des features
- Mise à jour de la base de données (lancement des hook_update) et
réactivation des features
32. UNE SUCCESSION DE CURL
La home répond (code HTTP 200)
Pas de bloc d’erreurs Drupal sur la home
Pas d’erreur 404 sur les assets
Les blocs importants sont bien présents
34. Buildwall Jenkins
Envoie de mail à l’échec d’un
job
Page de healthcheck utilisée
par l’exploitant
Courbes d’évolutionde la
qualité et des performances
37. PAS DE SOLUTION DE T.U. PERTITENTE EN D7
Simpletest non pertinent -> trop lent
Focalisation sur les tests d’intégrations et les revues de code
Pas de selenium : ne fonctionnait pas sur notre site (trop de js)
41. Concevez votre pipeline le plus tôt possible !
Maitrisez Git, Drush et Features !
Testez votre pipeline avant la mise en ligne initiale !
Sachez tester de façon pertinente, que soit pour les tests d’intégration et
les smokes test !
Monitorez !