Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge...

14
Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1

Transcript of Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge...

Page 1: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à

la forge logicielle SourceSup

Sébastien Médard

GIP RENATER 1

Page 2: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

2

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

Page 3: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

3

Page 4: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

ArchitectureServeur Apache

Authentification via la fédération Education Recherche

Plugin d’authentification(Reverse proxy)

Plugin d’authentification(Reverse proxy)

Serveur JenkinsServeur Sonar

Base de données

Plugin Sonar modifié

• Lancement d’analyses• Création des utilisateurs• Création des droits

Transmission d’attributs utilisateurs

4

Page 5: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

5

Page 6: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

6

Page 7: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

7

Page 8: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

Droits sur les jobs

8

Page 9: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

publique9

Page 10: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

Permissions sur l’analyse Sonar

10

Page 11: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

11

Page 12: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

Accès à Sonar

12

Page 13: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

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

13

Page 14: Serveurs d’intégration continue Jenkins et d’analyse de code Sonar couplés à la forge logicielle SourceSup Sébastien Médard GIP RENATER 1.

Merci pour votre attention.

Questions ?

14