QuaCICD : glisser, déposer, c’est déployé !

L’intégration et le déploiement continu ont amené à automatiser les déploiements. Auparavant, les déploiements étaient réalisés grâce à procédures déroulées par des administrateurs système ou des devops. Ce sont maintenant des procédures automatisées exécutées par les développeurs. QuaCICD qui est une extension de Kanboard a pour objectif d’aller plus loin, en donnant la possibilité au Product Owner de lancer ces déploiements directement depuis son tableau de management visuel de type Kanban.

Prérequis

Il y a deux prérequis :

  • Git d’installé sur machine hébergeant le Kanboard
  • Kanboard doit avoir la permission d’écrire dans les répertoires /srv et /var/www/html

Installation

Il existe deux moyens d’installer le plugin :

  • Faire un git clone du dépôt git dans le dossier plugin de votre installation de Kanboard.
git clone git@gitlab.com:quamob/QuaCICD.git

ou

  • Télécharger le zip du plugin dans l’onglet release du dépôt git et l’extraire dans le dossier plugin.

Vérification de l’installation

Vous pouvez ensuite vérifier dans l’onglet ‘extension’ de votre Kanboard que QuaCICD est bien présent.

Image de la liste des plugins d'un Kanboard

Création d’un projet

Une fois le plugin installé, un nouveau bouton ‘Nouveau Projet QuaCICD’ apparaît dans le tableau de bord.

Celui-ci va vous ouvrir une fenêtre de création de projet, la partie de gauche est la fenêtre de création de projet Kanboard classique. La partie de droite vous demande les noms des deux nouvelles colonnes. Une colonne qui correspond à l’environnement de qualification ; par défaut elle s’appellera ‘Qualification’. Et une deuxième colonne qui correspond à l’environnement de production ; par défaut elle s’appellera ‘Production’.

La création de votre projet QuaCICD créé :

  • Plusieurs répertoires : le répertoire /srv, dans lequel se situe le répertoire Git correspondant au dépôt git du projet. Mais aussi tous les scripts de déploiement nécessaires au fonctionnement du plugin. Ces scripts peuvent être modifiés avec les méthodes de déploiement que vous utilisez. Dans le répertoire /var/www/html, il y a les deux environnements celui de Qualification et celui de Production.
Organisation de fichiers créés par QuaCICD
  • Deux nouvelles colonnes portant les noms qui ont été saisies lors de la création du projet. En plus de ces colonnes, trois actions automatiques ont été ajoutées au projet. Deux d’entre-elles permettent d’exécuter les scripts de déploiement en qualification et en production. La dernière permet la création de nouvelles branches sur le dépôt git. Chaque action est attachée à une colonne et sera déclenchée lorsque une tâche est déposée dans cette colonne.

Utilisation

Le plugin apporte donc trois nouvelles actions :

  • Quand une tâche arrive dans la colonne ‘En cours’, une nouvelle branche va être créée sur le dépôt git du projet. Cette branche suivra le canevas : ‘Task/ID-NomTâche’. Les développeurs peuvent donc cloner le projet et travailler sur cette branche pour coder la nouvelle fonctionnalité. Une fois qu’ils ont fini, ils déplacent la tâche dans la colonne ‘Terminé’.
  • Quand la tâche est déplacée dans la colonne ‘Qualification’, le script de déploiement en qualification de cette nouvelle fonctionnalité est excécuté. Le Product Owner pourra tester celle-ci dans l’environnement de qualification.
  • Si elle lui convient, alors il peut déplacer la tâche dans la colonne ‘Production’ ce qui déploiera la tâche en production. Si la fonctionnalité ne lui convient pas, il déplace la tâche dans ‘En cours’. Ce qui permettra au développeur de réaliser les modifications nécessaires.

Enfin, chaque déplacement dans une des trois colonnes génère un commentaire dans la tâche déplacée permettant d’horodater les modifications.

Gestion des conflits lors du déploiement

Lors du déploiement des fonctionnalités, il est possible que des conflits apparaissent. Si c’est le cas, le déplacement de la tâche est annulé, c’est-à-dire qu’elle revient à sa position précédente. Des indications sont ajoutées dans les commentaires de la tâches permettant la résolution de ces conflits. Une fois réglés, il suffit de déplacer à nouveau la tâche dans la colonne souhaitée.

Options possibles

Cette extension offre deux options directement modifiables dans la base de données qu’utilise votre Kanboard dans la table ‘settings’ :

  • La première est ‘quaboard_delete_branch_in_production’ qui permet la suppression des les branches une fois déployée en production. Par défaut, cette option est activée.
  • La seconde option est ‘quaboard_merge_squash_option’. Elle va déterminer si les merges de branch se feront avec l’option ‘–squash’. Cette option permet lors d’un merge de regrouper tous les commits en un seul, ce qui sera rendra l’historique du dépôt git plus lisible. Par défaut cette option est désactivée.

Association avec le plugin QuaBDD

Si QuaCICD et QuaBDD sont installés sur votre Kanboard, vous avec accès à une fonctionnalité supplémentaire. Quand une tâche est déplacée dans la colonne ‘En cours’, en plus de créer la branche correspondante, le plugin va ajouter à cette branche tous les Gherkin présents dans la tâche. C’est-à-dire que les fichiers .feature et .step sont créés dans la branche de la tâche.

Vidéos

Le plugin est accompagné de trois vidéos :

  • Présentation
  • Utilisation
  • Explication du code source

1 commentaire pour “QuaCICD : glisser, déposer, c’est déployé !”

  1. Retour de ping : QuaBDD, partager facilement vos scénarios Gherkins. - Quamob

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *