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é en procédures lancé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 installation

Vous pouvez ensuite vérifier que 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 nous demande les noms des deux nouvelles colonnes. Une colonne qui correspondra à l’environnement de qualification par défaut elle s’appellera ‘Qualification’ et une deuxième colonne qui correspondra à l’environnement de production par défaut elle s’appellera ‘Production’.

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

  • Plusieurs répertoires, le répertoire /srv on retrouve le répertoire Git correspondant au dépôt git de notre projet. Mais aussi tous nos scripts de déploiement qu’aura besoin le plugin. Ces scripts peuvent être modifier avec vos méthodes de déploiement que vous utilisez. Dans le répertoire /var/www/html on va retrouver nos deux environnements celui de Qualification et celui de Production.
Organisation de fichiers créés par QuaCICD
  • Deux nouvelles colonnes portant les noms qu’y ont été rentré lors de la création du projet. En plus de ces colonnes, trois actions automatiques ont été ajouté au projet. Deux d’entre-elles permettent d’exécuter les scripts de déploiements 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é quand 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éé sur le dépôt git du projet. Cette branche suivra un pattern : ‘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 on déplace la tâche dans la colonne ‘Qualification’. Ce déplacement aura pour effet d’exécuter le script de déploiement en qualification de cette nouvelle fonctionnalité. 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 exécutera le script de déploiement en production. Cependant, si la fonctionnalité ne lui convient pas il peut déplacer la tâche dans ‘En cours’. C’est à nouveau au développeur de faire les modifications dans la branche de cette fonctionnalité pour ensuite déplacer à nouveau la tâche dans la colonne ‘Terminé’.

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

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. En plus de cela, il y aura des indications 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 a base de données qu’utilise votre Kanboard dans la table ‘settings’ :

  • La première est ‘quaboard_delete_branch_in_production’ qui permet de choisir s’il on veut que les branches soit supprimées une fois déployé en production. Par défaut, cette option est activée.
  • La deuxième option est ‘quaboard_merge_squash_option’. Elle va déterminer si les merges de branch se feront avec l’option ‘–squash’ ou pas. Cette option permet lors du merge de regrouper tous les commits en un seul ce qui sera plus lisible dans l’historique du dépôt git. Par défaut cette option n’est pas activée.

Association avec le plugin QuaBDD

Si QuaCICD et QuaBDD sont installés sur votre Kanboard, alors vous aurez accès à une fonctionnalité en plus. Quand vous allez déplacer une tâche dans la colonne ‘En cours’, en plus de créer la branche correspondante, le plugin va ajouter à cette branche tous les ghekins présent dans la tâche. C’est à dire qu’il y aura le fichier .feature et le fichier step correspondant au gherkin dans la branche de la tâche.

Vidéos

Le plugin est accompagné de trois vidéos :

  • Une vidéo de présentation
  • Une vidéo sur l’utilisation du plugin
  • Une vidéo d’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 de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *