ci/cd

Prestashop : Hhmodule manager, fonctionnement technique et extension

Dans ma série d’articles précédents sur la mise en place de la CI/CD sur Prestashop, j’ai présenté une étape qui permets d’automatiser le déploiement de changements de modules et de configuration.
Celle-ci est géré via le module hhmodulesmanager, dont j’ai également présenté le fonctionnement basique qui est disponible dans cet article : Prestashop : Comment limiter les interactions manuelles avec le déploiement continu
Ce module gère nativement les actions suivantes :

  • Installation / Désinstallation / Activation / Désactivation / Mise à jour de module
  • Ajout / Mise à jour / Suppression de configuration

En revanche avec sa conception il peut servir de base technique pour gérer pleins d’autres actions, telles que  la Création/Modification/Suppression d’entités spécifiques…
Nous verrons plus loin comment le mettre en place.
Tout d’abord voici le fonctionnement technique du module et les notions importantes.
Pour rappel pour vous télécharger le module (gratuitement) sur la boutique ici :
Pensez à vous abonnez aux mises à jour de celui-ci pour être informés de la sortie des dernières versions 🙂

Télécharger le module complet ( et gratuit ) sur la boutique

Objet « Change »

Chaque action effectuée dans la back office est retranscrite sous la forme d’un objet « Changement » qui est une instance de la classe Change.…

Prestashop : Hhmodule manager, fonctionnement technique et extension Lire la suite »

Prestashop : Est-ce que mon site fonctionne toujours après ma livraison de code.

Cet article est le 5ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

Pour finir nos étapes de déploiement continu, une question se pose toujours après la livraison du code.
Est-ce que mon site fonctionne toujours ?
Est-ce que le module que j’ai installé ne casse rien ?

Pour répondre à cette question, il est souvent nécessaire de faire des tests manuels des parcours critiques.
C’est long et répétitif, mais nous allons voir à travers cette étape comment mettre en place des tests fonctionnels qui vont vérifier ce comportement pour nous 🙂

Pour cela nous allons utiliser la librairie playwright : https://playwright.dev/ 

Playwright

Cette librairie est utilisée par Prestashop pour faire l’ensemble des tests automatisés de la solution.…

Prestashop : Est-ce que mon site fonctionne toujours après ma livraison de code. Lire la suite »

Prestashop : Comment limiter les interactions manuelles avec le déploiement continu

Cet article est le 4ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

Un point relativement pénible avec Prestashop et qu’il n’existe pas nativement de solution automatisée pour installer / mettre à jour / désinstaller des modules, et pour déployer des configurations.

Ce qui fait que pour chaque déploiement de code, il est nécessaire de se rendre sur l’environnement cible  ( préproduction ou production ) et de réaliser manuellement les actions d’installations et mises à jour de modules, ainsi que l’application des configurations.
Il est donc nécessaire pour une action de la réaliser manuellement sur tous ces environnements.
Ceci est forcément source d’erreurs ou d’oublis, c’est pourquoi il serait beaucoup plus simple que tout se passe tout seul.…

Prestashop : Comment limiter les interactions manuelles avec le déploiement continu Lire la suite »

Prestashop : Déploiement continu, vérifier la qualité du code

Cet article est le 3ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles de cette série sont les suivants :

État des lieux

En préalable de cette étape nous allons ajouter un nouveau module prestashop de mauvaise qualité et avec une erreur de syntaxe php.
C’est volontairement ce qu’il ne faut pas faire 🙂

Pour faire ça simplement vous pouvez utiliser l’outil prestashopConsole qui est disponible ici : https://github.com/nenes25/prestashop_console
Et créer un module basique de test hhtestci  via la commande suivante :
php prestashopConsole.phar module:generate:module hhtestci

Dans ce module rajouter n’importe quelle erreur php, commiter et envoyer la modification dans git, puis faire une merge request comme nous l’avons vu dans l’étape précédente.
Dans le code de la merge request, rien ne nous indique qu’il y’a une erreur.…

Prestashop : Déploiement continu, vérifier la qualité du code Lire la suite »

Prestashop : Déploiement continu, qui peut livrer du code et ou

Cet article est le 2ème de la série sur le déploiement et l’intégration continu dans Prestashop.
Les autres articles articles de cette série sont les suivants :

Configuration initiale

Cette étape va surtout vous concerner si vous travaillez en équipe sur les projets et/ou si vous faites intervenir ponctuellement des intervenants externes.
Dans le cas ou vous travaillez tout seul, ce n’est pas forcément nécessaire mais c’est tout de même une bonne pratique.

Dans le cadre de mes projets j’ai toujours 3 environnements :

  1. Environnement local
  2. Environnement de préproduction ( branche git dev )
  3. Environnement de production ( branche git master )

Au niveau de git, le workflow utilisé est le suivant :

Toute nouvelle fonctionnalité est faite d’abord en local, dans une nouvelle branche, issue de master.…

Prestashop : Déploiement continu, qui peut livrer du code et ou Lire la suite »

Prestashop : Déploiement continu, initialisation du projet

Cet article est le 1er article de la série sur le déploiement et l’intégration continue dans Prestashop.
Les autres articles articles de cette séries sont les suivants :

Introduction

L’essentiel de l’article de 2017 que j’avais écrit sur le sujet reste d’actualité, à l’exception de la version de Prestashop et de la structure globale du projet.
Je vous invite donc à suivre l’ensemble des éléments de l’ancien article pour la base.
Celui-ci est disponible ici : https://www.h-hennes.fr/blog/2017/04/27/prestashop-passer-au-deploiement-continu/
Et je vais détailler uniquement les changements apportés.

Structure globale du projet

Dans le projet git, je recommande à présent de créer un sous-dossier qui  contiendra les fichiers du site.
Et non plus de mettre le code de Prestashop directement à la racine.

Pour ma part  je vais l’appeler www , mais libre à vous de lui en donner un autre nom.…

Prestashop : Déploiement continu, initialisation du projet Lire la suite »

Prestashop : Aller plus loin dans le déploiement continu

La gestion du code et son déploiement via la CI (Continuous Integration) / CD ( Continuous Deployment ) apporte un vrai confort dans la gestion des projets web.
Un projet prestashop n’en fait pas exception.

J’avais déjà fait un article sur le sujet il y’a quelques années : https://www.h-hennes.fr/blog/2017/04/27/prestashop-passer-au-deploiement-continu/
Celui-ci est encore basé sur la version 1.6.1, mais la logique de fonctionnement reste la même, et ce workflow de base est en place sur l’ensemble des mes projets depuis ce temps.
Mais nous allons voir ensemble qu’il est possible d’aller plus loin et se se simplifier encore plus la vie  à travers une nouvelle série d’articles.

Pour commencer j’ai prévu de faire un article rapide qui va définir certains changements par rapport à mon article initial.
Ainsi que gérer les versions plus récentes de Prestashop.

Puis je détaillerais une série de nouvelles étapes qui vont partir des besoins suivants :

  • Qui peut livrer du code et ou
  • Est-ce que la qualité du code livrée est correcte
  • Comment limiter les interactions manuelles
  • Est-ce que mon site fonctionne toujours après ma livraison de code.

Prestashop : Aller plus loin dans le déploiement continu Lire la suite »