par

Jenkins est l’outil le plus utilisé des équipes DevOps pour la gestion des tests automatiques. Pour optimiser l’utilisation de Jenkins avec Tuleap, la release 12 fournit une nouvelle intégration, complètement transparente de la chaîne de build. C’est un véritable gain de temps et cela facilite grandement la mise en place de la CI/CD. Voyons ensemble comment cette intégration fonctionne et pourquoi elle va donner le sourire à vos équipes de devs et QA !

integration jenkins tuleap

Jenkins et Tuleap pour la CI/CD et le DevOps

La CI/CD (Continuous Integration-Continuous Delivery) est une pratique d’ingénierie logicielle qui a pour but de réduire le temps de production et d’accélérer le time-to-market, en se basant, comme son nom l’indique, sur un process d’intégration et de livraison continue. C’est une des valeurs centrales de l’approche DevOps, dont l’objectif est de transformer un projet de R&D en un logiciel commercialisé performant, mais aussi d’être le plus efficace possible en phase de test et pendant l’itération.

Jenkins est donc, de facto, l’outil préféré pour la CI/CD. Pas étonnant que la plupart des organisations possèdent même plusieurs serveurs Jenkins déployés ci et là… moyennant évidemment un seuil de contrôle plus ou moins élevé selon les instances.

De nos jours, tout ce qui est relatif à Jenkins, que ce soit les pipelines ou la configuration de Jenkins lui même, devrait être géré en tant que code source (« as code »). Et c’est là que Tuleap intervient.

Vu le lien étroit qui relie l’outil hébergeur avec l’outil en charge de l’automatisation des tests, l’idéal est évidemment d’avoir plus de transparence entre les deux outils, ou tout du moins, de pouvoir jongler entre les deux facilement. C’est précisément sur ce point que nous avons travaillé pour la version 12 de Tuleap.

La nouvelle intégration Jenkins <> Tuleap repose autour de 3 piliers :

  • l’unification des procédures d’authentification et de la gestion des permissions d’accès,
  • l’automatisaton des triggers (Tuleap ➡️ Jenkins),
  • un système de feedback transparent (Jenkins ➡️ Tuleap).

Authentification et gestion des permissions unifiées entre Tuleap et Jenkins

Grâce à son système de gestion des permissions précis et puissant, Tuleap est particulièrement performant dans les environnements fortement réglementés. La plupart du temps, ce type d’environnement est fermé par défaut, nécessitant une demande d’autorisation ou des besoins bien spécifiques pour être ouvert. Ceci nécessitant alors un système de gestion des utilisateurs et des groupes très contrôlés. Et c’est encore plus vrai dans les milieux où les arrivées et départs sont fréquents (ré-organisation, sous-traitants, nouveaux arrivants…). 

La force de Tuleap est de centraliser toutes les informations liées aux projets : les data mais aussi les utilisateurs. C’est donc ici que doivent se définir et se gérer les groupes d’utilisateurs et les autorisations/permissions. Ce qui aurait été idéal, c’est qu’on puisse piloter les droits sur Jenkins depuis Tuleap pas vrai ? ? Et bien, grâce au plugin Tuleap OAuth2 Server et Jenkins Tuleap OAuth Plugin, c’est possible, et c’était même l’objectif principal.

Grâce à cette intégration, Jenkins peut entièrement déléguer la gestion des utilisateurs à Tuleap, en offrant une méthode d’authentification unique aux deux outils pour les personnes qui naviguent entre les deux. Plus encore, tous les groupes d’utilisateurs définis par projet dans Tuleap peuvent être complètement réutilisés au sein du système d’autorisations d’accès de Jenkins.

Comme le montre la capture ci-dessus, on peut voir que des autorisations par défaut sont attribuées sur la plateforme Jenkins, selon les groupes créés dans des projets Tuleap. Par exemple, lorsque l’administrateur ajoute un nouveau membre au projet « mozilla » dans Tuleap, ce dernier aura aussi accès à Jenkins et pourra créer et gérer les jobs. 

Bien évidemment, vous pouvez personnaliser cette fonctionnalité selon vos besoins pour :

  • Identifier un groupe responsable de la maintenance du pipeline d’intégration continue (CI maintainers) sur Jenkins, qui aura aussi accès à l’administration de Git du côté de Tuleap ;
  • Identifier un groupe de Product Owner et Support Team qui aura accès en lecture-seule à toutes les tâches et sera informé du statut des éléments en cours de développement ;
  • … et bien plus encore !

Bénéfices pour les équipes

  • Fini les pertes de temps liées à l’arrivée de nouveaux membres : vous ajoutez facilement de nouveaux utilisateurs et leur donnez un accès rapide à toutes les ressources nécessaires ; 
  • Plus besoin de s’inquiéter d’un potentiel problème de sécurité : dès que des utilisateurs quittent un projet Tuleap (car ils n’en sont plus membres, ou parce que leur compte a été suspendu/supprimé), l’accès à toutes les ressources liées au groupe Jenkins sera interdit.

Ces bénéfices sont d’autant plus important du côté de Jenkins. Comme précisé en introduction, dans la plupart des entreprises il existe au moins une dizaine de serveurs Jenkins (voire même parfois des centaines). La plupart du temps, ces serveurs sont sous la responsabilité des équipes de développement, contrairement aux instances Tuleap qui sont sous la responsabilité de la DSI ou de toute l’équipe de R&D au complet. Mais ne soyons pas naïfs, nous savons que trop souvent, respecter les règles et les principes de gestion de projet ce n’est pas la priorité des développeurs … 😉

Voilà pourquoi avec Tuleap nous avons décidé de fournir une alternative simple et efficace : une configuration unique entre Jenkins et Tuleap. Grâce à ça, vous pouvez être tranquille : l’accès à n’importe quel projet est sécurisé, et ça, pour toujours. Un niveau de sécurité indispensable durant toute la durée du projet. 

L’automatisation des triggers Jenkins

Il était déjà possible de gérer des triggers Jenkins depuis (très) longtemps avec Tuleap (pour les #boomers, c’était déjà possible avec CVS & Hudson…). Mais avec Tuleap 12, on passe au niveau supérieur pour Git (on ne fait plus de CVS en 2020, déso pas déso), pour proposer une automatisation complète de la gestion des tâches Jenkins, de la création aux déclenchement des triggers, gérée par Tuleap de A à Z. 

Ceci est possible grâce aux plugins Tuleap Git/Jenkins management et Jenkins Tuleap Git Branch Source.

Une fois que vos serveurs Jenkins et Tuleap sont déclarés et reliés entre eux, il ne reste plus qu’à s’occuper des tâches de développement vraiment importantes :

  • Lorsqu’un développeur crée une nouvelle branche ou un tout nouveau repo Git, le plugin se charge de créer une tâche du côté de Jenkins : tout ce dont vous avez besoin, c’est d’un Jenkinsfile pour décrire comment construire votre projet.
  • Dès qu’un commit arrive, Tuleap déclenche un build : plus besoin de configurer manuellement chaque dépôt Git pour l’associer au bon serveur Jenkins… Tuleap s’en charge !

Bénéfices pour les équipes

  • Moins de configurations,
  • Moins d’interventions et de maintenance manuelles,
  • L’occasion de se concentrer sur ce qui importe vraiment : délivrer le bon produit.

Un système de feedback transparent

Au final, quand on arrive à la fin d’une itération, l’important est que toutes les informations remontent dans Tuleap. Jusque là, c’était possible de le faire en utilisant l’API REST.
Avec Tuleap 12, le pipeline Jenkins est grandement améliorée pour faciliter ce transfert d’information, avec de nouvelles directives. Le plugin Jenkins Tuleap API fournit :

  • tuleapSendTTMResults pour automatiser entièrement le transfert des résultats des tests d’automatisation ;
  • tuleapNotifyCommitStatus pour créer des rapports selon les statuts des tests (passed/failed) afin que les reviewers des Pull Request sachent si le code qu’ils lisent a passé le test d’intégration continue ou non.

Bénéfices pour les équipes

  • Des pipelines efficaces et faciles à écrire pour faciliter l’approche DevOps aux débutants ;
  • Une maintenance simplifiée pour nos experts !

Que faut-il retenir ?

Avec la version 12, Tuleap fait un bond en avant majeur pour l’organisation IT et pour les équipes DevOps. Le premier peut désormais envoyer depuis Tuleap des configurations par défaut saines et sécurisées vers les serveurs Jenkins. Les deuxièmes peuvent se concentrer à développer des logiciels de qualité, tout en respectant les exigences de l’entreprise, sans frais supplémentaires.


Tests automatiques et manuels avec Tuleap 12

Rejoignez le prochain webinaire