Automatiser les builds Mini Program WeChat avec une semi CI/CD

Voici la sauce secrète qui aide Wiredcraft à garder la qualité de ses livraisons en implémentant Continuous Integration et Continuous Delivery pour les Mini-Programs WeChat.

Septembre a été plutôt intense pour Wiredcraft avec la livraison de 2 Mini Programs WeChat très important, et celà sous une semaine : Burberry et Nike.

Voici quelques ingrédients de notre sauce secrète qui nous permet d’assurer la qualité en implémentant la procédure de Continuous Integration/Continuous Delivery pour les Mini Programs WeChat (ou plutôt, au plus proche que l’on puisse le faire).

De quoi s’agit-il ?

Une petit introduction au CI/CD ainsi que les spécificités de WeChat et comment il est possible de les combiner de manière efficace.

CI/CD

  • Exécute des tests (unit, integration, code format, tech debt etc.) sur les commits
  • Génère un artefact validé
  • Déploie vers les environnements dev/staging/automatiquement

Mini-Program WeChat

  • Utilise sa propre langue dérivée du Javascript
  • Utilise son propre IDE, nécessitant plusieurs validations/sécurité d’identification via QR code avec un controle très poussé de l’ACL via l’interface web de gestion
  • Le déploiement en prod est une procédure manuelle qui demande une revue du code par Tencent avant de pouvoir le mettre en ligne (processus de validation)

Comme nous pouvons le voir, une procédure complète CI/CD n’est pas possible car il y a une revue par Tencent qui se finalise par un click de leur côté (via l’interface web de gestion de WeChat).

Cependant on peut s’occuper des étapes en amont à partir du push/pr/merge jusqu’à la publication des builds expérimentales qui sont appropriées pour une revue pour les parties concernées.

Comment mettre en place la CI/CD

Sans rentrer dans trop de détails des procédures de test (Jest, Coverage etc.) ou de tooling (Jenkins, Bamboo, Pipelines etc.), jetons un oeil sur le ciment qui permet au (pre)-CD d’être implémenté.

La magie vient de l’utilisation du CLI de l’IDE WeChat et son abilité de générer un QR code d’identification en tant qu’image. Cela peut être alors transféré vers votre service de messagerie préféré pour scanner à distance et éventuellement l’identification de l’IDE dans votre builder.

Une exemple d’une procédure serait de :

  • déclencher l’exécution des tests automatiquement
  • démarrer l’identification de l’IDE installé sur l’hôte du CI/CD (e.g. un Mac mini où l’agent Jenkins tourne)
  • pousser le QR code généré vers un canal Slack dédié grâce à un Slackbot
  • envoyer votre version aux membres de l’équipe de publication and magiquement pousser le code généré vers WeChat en utilisant la CLI de l’IDE

Les membres de l’équipe de publication peuvent être votre équipe DevOps ou qui que ce soit qui est à un rôle adéquat. Le mieux étant de choisir quelqu’un qui ne fait pas partie de manière active de l’équipe de développement mais dont la contribution serait plutôt du côté de l’utilisateur gérant les releases expérimentales (via l’interface web de gestion de WeChat).

Cela veut dire que dire que la version sera poussé immédiatement comme la release expérimentale du Mini Program, accessibles à ceux avec le QR code.

Vous pouvez trouver un script qui réalise ce scénario : https://github.com/Wiredcraft/cicd-utils/tree/master/wechat. Vous pouvez bien entendu le fork/soumettre des PR, etc.

Quentin Berder
Product director
Posted on October 11, 2018 in Technologie

Partager cet article

Scan to open in WeChat

Abonnez-vous

Abonnez-vous pour la newsletter ou suivez notre compte WeChat. Vous receverez de manière fréquente des nouvelles sur nos derniers projets, événements ainsi que des informations sur nos sujets : produits numériques, omnicanal, cross-border ecommerce, etc.

  • Ajoutez nous sur WeChat

  • Abonnez-vous à la newsletter