Sébastien Médard GIP RENATER Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER
Pourquoi SourceSup est la forge de l’Enseignement Supérieur et de la Recherche C’est une plateforme de travail collaboratif Il est intéressant de collaborer aussi sur l’intégration continue et l’analyse de code
Objectifs Donner accès à un serveur d’intégration continue et un serveur d’analyse de code aux utilisateurs de SourceSup Permettre d’authentifier les utilisateurs par la fédération Education Recherche déjà utilisée sur SourceSup Ne pas avoir de comptes utilisateurs supplémentaires à gérer Retrouver l’aspect public/privé des projets de SourceSup sur ces serveurs
Architecture Serveur Apache Serveur Jenkins Serveur Sonar Authentification via la fédération Education Recherche Transmission d’attributs utilisateurs Plugin d’authentification (Reverse proxy) Plugin d’authentification (Reverse proxy) Serveur Jenkins Serveur Sonar Plugin Sonar modifié Lancement d’analyses Création des utilisateurs Création des droits Base de données
Plugin FusionForge Développement d’un plugin FusionForge afin d’afficher les interfaces de Sonar et Jenkins Ce plugin est disponible pour tous les projets Activable dans la partie administration des projets, il présente un nouvel onglet sur l’interface SourceSup
Accès à Jenkins Nécessite d’être authentifié sur SourceSup via la fédération Education Recherche Pour authentifier automatiquement l’utilisateur sur Jenkins : Utilisation du plugin reverse proxy de Jenkins Configuration Apache pour brancher Jenkins derrière un proxy et lui transmettre des attributs d’authentification via les entêtes des requêtes
Droits sur les jobs Job : ensemble d’opérations à effectuer séquentiellement par Jenkins Gestion des permissions au niveau des jobs par une matrice Par défaut, le créateur est le seul à avoir des droits sur le job A la création le job est privé L’administrateur du job peut compléter la matrice pour ajouter des droits à d’autres utilisateurs Si ajout de l’utilisateur « Authenticated » / « Anonyme » dans la matrice avec les bonnes permissions, le job devient public
Droits sur les jobs
Analyse Sonar Lancement d’une analyse lors de l’exécution d’un job Deux modes pour lancer une analyse Sonar : Via MAVEN (préciser le chemin vers pom.xml) Via le Sonar Runner (préciser les paramètres) Création de l’analyse sur Sonar à la fin de l’exécution Le lanceur du job est l’administrateur de l’analyse sur Sonar Une analyse est privée par défaut, elle peut devenir publique
Permissions sur l’analyse Sonar
Accès à Sonar Nécessite d’être authentifié sur SourceSup via la fédération d’identité Connexion automatique de l’utilisateur Développement d’un plugin Sonar reverse proxy Configuration Apache (semblable à celle de Jenkins) Remplissage des droits sur l’analyse dans la base de Sonar par le plugin « Sonar » de Jenkins
Accès à Sonar
Conclusion SourceSup bénéficie maintenant d’un nouvel outil La gestion des comptes et authentification est transparente pour l’utilisateur Il reste des ajouts à faire : un serveur Nexus (en étude) plusieurs serveurs Jenkins en parallèle Des serveurs Jenkins sur différents OS
Merci pour votre attention. Questions ?