© best_vector/Shutterstock.com
Codereview mit dem Open-Source-System Gerrit

Erfolgreiche Reviews 2


Im ersten Teil dieser Serie [1] haben wir ein lauffähiges Reviewsystem mit dem Reviewtool Gerrit in Betrieb genommen. Jetzt wollen wir den Code mit dem Continuous Integration Server Jenkins automatisch überprüfen lassen und damit einen Teil des Reviews automatisieren.

Artikelserie

Teil 1: Codereviews mit dem Open-Source-System Gerrit

Teil 2: Erfolgreiche Reviews 2

Bisher haben wir erreicht, dass Entwickler ein gemeinsames Codereview durchführen können. Das geschieht bei jedem Change, der in den Entwicklungsstand übernommen werden soll. Doch lässt sich noch nicht sagen, ob der eingecheckte Code überhaupt kompiliert werden kann. Die Unit Tests werden bisher auch nicht automatisch durchgeführt und eine statistische Codeanalyse muss manuell erfolgen. Diese Anforderungen rufen direkt nach dem Einsatz eines Continuous Integration Servers (CI-Server). Dieser übernimmt diese Aufgaben und führt sie bei jedem Change durch. Durch die Anbindung an Gerrit kann der Change eines Entwicklers sofort abgelehnt werden, wenn der Build fehlschlägt. Als CI-Server wollen wir Jenkins einsetzen, einen weit verbreiteten Server zur kontinuierlichen Integration, der mit einer Vielzahl an Plug-ins erweitert werden kann.

Konkret sieht die Zielarchitektur so aus, dass Jenkins einen definierten „Verify“-Job erhält, welcher von Gerrit angestoßen wird, sobald vom Entwickler ein Change­set hochgeladen wird. Gerrit richten wir so ein, dass eine Eigenschaft "Verified" gesetzt wird, wenn der Build erfolgreich war. Der Change kann nur dann in den gemeinsamen Codestand übernommen werden, wenn der "Verified" erreicht wurde. Diese Integration ist zwar nicht ganz einfach einzurichten, belohnt uns aber mit qualitativ besserem Code, direktem Feedback für den Entwickler und einer Plattform, die nahezu beliebig erweitert werden kann.

Gerrit vorbereiten

Damit wir sofort sehen, ob unser Change den Anforderungen entspricht, soll dieser eine "Verified"-Eigenschaft erhalten. Dies geschieht durch ein so genanntes Label, das die Werte -1, 0 und +1 haben kann. Erst ein +1 durch Jenkins erlaubt es uns, den Code in die Codebasis zu übernehmen. Leider wurde dieses Label in der Standardinstallation von Gerrit mit Version 2.6 entfernt. Aber der Administratorbenutzer kann es mit ein paar Handgriffen wieder hinzufügen [2]. Dies geschieht durch Auschecken der Konfiguration, Anpassen der project.config-Datei und Hochladen der Änderungen:

$ mkdir gerritconfig $ cd gerritconfig $ git init $ git remote add origin ssh:/...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang