dimanche 24 avril 2016

VSTS Build : Connecter une Build d'intégration continue à une instance SonarQube – Quick Start

SonarQube est un outil d'analyse de qualité de code Open Source permettant de controler la dette technique d'un projet en cours de développement. cet outil s'avère extrêmement utile à la fois pour les développeurs en permettant le controle de la dette technique de leur projet au sein du processus d'intégration continue et également de grandir dans le métier de développeur grace à l'approche didactique de Sonar, qui propose des solution actionables à tous les problèmes remontés, ce qui fait que les développeurs apprennent très vite en uilitsant l'outil à ne plus coder de dette technique. Niveau Management, cela permet de consolider à différents niveaux tels que Projet, Delivery Center, Entreprise des métiques pertinentes rendant transparent tout problème affectant potentiellement la profitabilité de l'entreprise du fait de production d'applications difficilement maintenables impactant à la fois  la capacité d'innovation, et le Time to Market de l'entreprise.
Il est donc stratégique dans une démarche qualité et plus spécifiquement de controle de la dette technique et de transparence de pouvoir intégrer SonarQube à tout processus d'intégration continue. Microsoft, au travers du module Build a su rendre l'intégration de SonarQube très simple comme nous allons le voir dans cet article.
Attention, cet article ne couvre pas la configuration de SonarQube qui est essentielle pour assurer une vision transparente et réaliste de la dette technique, ce qui passe par l'installation de plugins payant par exemple pour C# et également la mise en place de Quality Profiles et Quality Gates alignés avec les stratégies qualité de l'entreprise.
Nous allons voir pas à pas comment configurer cette intégration au travers de la création d'une nouvelle Build CI

  1. S'assurer d'avoir accès à une instance SonarQube existante
  2. Se connecter au portail VSTS du projet cible
  3. Activer l'onglet Build et cliquer le bouton + pour créer une nouvelle Build
  4. Selectionner un template de Build, dans notre cas nous choisissons Visual Studio puis cliquer Next
  5. Configurer le type de Repository, le repository, la branche et l'agent (rafraichir la liste si besoin, dans le cas ou la liste est vide, rapprocher vous de votre Admin TFS pour la configuration de l'agent), n'oubliez pas de cocher la case Continuous integration pour s'intégrer dans un processus d'intégration continue (optionnel) puis cliquer sur le bouton Create
  6. La Build definition est affichée en mode Edition, cliquer simplement sur Add Build Step pour ajouter les taches Sonar fournies par Microsoft en standard dans le workflow de la Build. On notera que le template vient avec la compilation de la solution, l'exécution des tests ainsi que la publication des artefacts de Build tel que les packages de déploiement par exemple
  7. La librairie des taches s'affiche en pop up, scroller jusqu'à atteindre les taches Sonar puis cliquer sur le bouton Add situé à droite des taches puis cliquer sur Close.
  8. Les taches Sonar sont ajoutées à la Définition de Build
  9. Simplement cliquer glisser les taches pour les positionner au bon endroit dans le workflow comme montré ci dessous
  10. Nous allons maintenant configurer les taches Sonar afin que la Build CI puisse publier les informations de qualimétrie vers Sonar. Pour cela, vous devez disposer de la clé projet Sonar, le nom et la version comme montré ci dessous. A noter qu'un EndPoint SonarQube aura été provisionné par votre administrateur au préalable. Pour la partie Database Settings, nous allons utiliser des variables que l'on créera au préalable dans l'onglet variables
  11. La création des variables se fait comme montré ci dessous à partir de l'onglet variable. Il faut avoir la chaine de connection à la base de données, ainsi que le Login et mot de passe (A noter que dans la prochaine version de Sonar, les login mot de passe ne seront plus à fournir ce qui du point de vue de la sécurité sera une grande amélioration)
  12. Sauvegarder la build puis tester, si tout est correctement configuré, vous obtenez un rapport de build comme ci dessous avec un lien vous permettant d'accèder au Dashboard du projet Sonar directement pour voir les élements d'information


    Pour information, la création du Endpoint SonarQube se fait à partir des settings de l'instance, pour y accèder cliquer sur le bouton settings comme montré ci dessous,

    Cliquer sur l'onglet Services et cliquer sur Add a new Service Connection

    Choisir Add a Generic

    Entrer le nom SonarQube par exemple puis l'adresse de votre instance Sonar par exemple : http://sonar.YourCompany.net:8080/ puis des credentials permettant de se connecter à l'instance Sonar avec les privilèges suffisants