VNext mit SonarQube

Um die Qualität unseres Codes (.Net C#) weiter zu verbessern haben wir eine Testinstallation von SonarQube vorgenommen. Ziel ist es zuerst mal aus dem VNext Build den Code in Sonar analysieren  zu lassen und darzustellen. Ob wir später SonarQube als Quality Gate benutzen wird sich noch zeigen.

Die Installation von SonarQube ist recht einfach und auch sehr gut beschrieben. Wer nicht so viel lesen will kann sich den Quickstart Guide anschauen.
Unser Installationsumgebung ist Win Server 2012 R2 mit SQL Server 2014. Die Installation lief wie folgt ab:
Sql Server :

  1. Datenbank (sonar) anlegen
  2. Benutzer für Datenbank anlegen und entsprechend mit Rechten verstehen
  3. Benutzer in die Konfigdatei eintragen

SonarQube Server einrichten:

  1. Zip nach c:sonar entpakt
  2. Scanner für MSBuild hinzufügen
  3. C# Plugin hinzufügen -> Runterladen und unter C:\sonar\extensions\plugins legen.
  4. Starten oder als Service installieren (C\:sonar\bin\windows-x86-64)
    – Starten „StartSonar.bat“ oder
    – Service installieren (InstallNTService.bat) -> Service User noch ggf. anpassen

Vnext Build anpassen: Detaillierte Anleitung ist auf CodeWrecks zu finden

  1. Buildschritt „SonarQube for MSBuild – Begin Analysis“ direkt als ersten Schritt hinzufügen
    – Project Key und Project Name eingeben -> werden automatisch in Sonar angelegt
    – Wer eine History und Vergleichsmöglichkeit in Sonar haben möchte muss die Project Version  dynamisch setzen. z.B. 1.$(Build.BuildNumber)
    – Die anderen Felder können leer gelassen werden
  2. Buildschritt „SonarQube for MSBuild – End Analysis“ am Ende hinzufügen

build mit sonar

Der Build Agent muss auch noch die entsprechenden Anforderungen erfüllen Ein Blick in die Builddefinition -> Allgemein -> Anforderungen genügt.
Bei uns fehlte Java.
Falls nicht alle Anforderungen erfüllt sind kommt eine aussagekräftige Fehlermeldung.

sonar agent requirements

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.