Automatische Code Reviews mit SonarQube und Jenkins: Teil 2/2
Im Anschluss an den ersten Teil dieses Beitrags können Sie Ihre Codequalität noch weiter verbessern, indem Sie das automatische Code-Review-System um die Analyse durch SonarQube erweitern. Dazu müssen Sie nur ein paar Anpassungen an SCM-Manager, Jenkins und SonarQube vornehmen. Im ersten Teil dieses Artikels haben wir Ihnen bereits die notwendige Konfiguration von SCM-Manager und Jenkins gezeigt. Im zweiten Teil zeigen wir Ihnen nun die notwendigen Anpassungen, um SonarQube in den automatisierten Prozess zu integrieren.
Code Reviews mit SonarQube
Mit SonarQube können Sie das automatische Code-Review-System erweitern. Sie können Code-Metriken definieren, auf die Ihr Projekt geprüft werden soll. Für jede Metrik können Sie Grenzwerte für Warnungen und Fehler festlegen.
Wenn der Build in Jenkins erfolgreich ist, wird die Analyse von SonarQube aufgerufen. Der Status der Sonar-Analyse wird in Pull Request in der Statusleiste Analyse angezeigt.
Implementierung für SonarQube und Jenkins
Um den Code-Review-Prozess durch die Anbindung von SonarQube zu erweitern, sind nur wenige Änderungen in Jenkins und an SonarQube selbst notwendig.
Jenkins Konfiguration
Wenn Sie SonarQube in Ihren Jenkins-Job integrieren möchten, müssen Sie lediglich einen entsprechenden Build-Schritt in Ihrem Jenkinsfile aufnehmen.
Sollten Sie SonarQube manuell in Jenkins hinzufügen wollen, müssen Sie in Jenkins auf den Reiter Manage Jenkins in der linken Menüleiste wechseln und dann Tools im Abschnitt System Configuration auswählen. Anschließend können Sie einen SonarQube-Scanner im Abschnitt SonarQube Scanner-Installationen hinzufügen.
Alle vorherigen Änderungen an Jenkins aus Teil 1 bleiben unverändert.
SonarQube Konfiguration
Grundlegende Einstellungen zu Metriken und Regeln werden auf SonarQube eingestellt. Dafür müssen Sie zunächst im Tab Projects das entsprechende Projekt hinterlegen. Anschließend können Sie im Tab Quality Profiles Qualitätsregeln hinzufügen. Die Qualitätsprofile sind eine Reihe von Regeln, die spezifisch für jede Programmiersprache ausgewählt werden können.
Navigieren Sie anschließend zur Registerkarte Quality Gates. Dort können Sie die Metriken hinzufügen, die Sie verwenden möchten. SonarQube enthält bereits eine Reihe von Standardmetriken ("sonar way"), darunter Metriken wie Abdeckung, Prozentsatz der duplizierten Zeilen oder Sicherheitsbewertung.
Es liegt an Ihnen, die Metriken auszuwählen, die Sie verwenden möchten, und geeignete Grenzen zu finden. Sind die Grenzen zu restriktiv, wird es schwierig sein, im Projekt voranzukommen. Sind die Grenzen schwach, macht sie das entbehrlich.
Damit die SonarQube Analysen auch am jeweiligen PR oder Commit im SCM-Manager angezeigt werden können, ist es notwendig das SonarQube Plugin im SCM-Manager installieren. Dies kann im Tab Administration unter Verfügbare Plugins in der rechten Menüleiste vorgenommen werden. Sie finden das Plugin im Abschnitt Continuous Integration. Die Kommunikation zwischen SonarQube und SCM-Manager läuft über Webhooks. Diese können pro Projekt oder pro Organisation definiert werden und müssen in SonarQube entsprechend (pro Projekt oder pro Organisation) in den Einstellungen hinterlegt werden.
Automatische Code Reviews verbessern die Qualität
Durch die Implementierung dieses automatischen Code-Review-Prozesses erhalten Sie sofort eine Rückmeldung darüber, ob Ihr Code gebaut werden kann, über den Erfolg Ihrer Unit-Tests und über die Einhaltung Ihrer eigenen Code-Metriken und -Kennzahlen. Am Anfang kann es einige Zeit dauern, bis Sie ein gutes Gleichgewicht zwischen Einschränkung und Redundanz Ihrer Metriken gefunden haben. Mit der Zeit können sie angepasst werden, um die Qualität Ihres Codes zu verbessern.
Tags