Artikelformat

Hudson PHP Build um Sloccount erweitern

Für alle, die inzwischen mit dem Hudson experimentieren gibt es eine Ergänzung. Diese kann mit relativ wenig Aufwand eingebaut werden. Es handelt sich dabei um SLOCcount. Dies ist ein Tool, dass die Source Lines of Code (also die Anzahl der Sourcecode-Zeilen) bestimmt und ausgibt. Die Hudson Integration bietet einen neuen Menüpunkt in der Detailansicht des Jobs an und man kann die SLOCs anschauen.

Um Sloccount in den Hudson einzubinden, benötigt man 4 Dinge. Den lauffähigen Hudson aus meinem CI Beitrag, das Kommandozeilen-Tool sloccount, das Hudson Plugin SLOCCount und eine Anpassung an der build.xml. Der erste Punkt ist schnell abgehandelt und hier verweise ich auf den entsprechenden Beitrag.

SLOCCount installieren:
Ich baue hier auch wieder auf Debian Squeeze auf, da ich diese Distribution für den Hudson Beitrag nutzte. Somit ist die Installation ein Kinderspiel. Man gibt folgenden Befehl als root ein und apt installiert das Tool. SLOCcount ist nämlich bei Debian im Repository verfügbar:

1
apt-get install sloccount

SLOCCount Hudson Plugin installieren:
Das Hudson Plugin ist wie alle Hudson-Plugins schnell installiert. Die Konfiguration ist auch recht einfach. Der SLOCcount Report ist unter build/logs/sloccount.sc zu finden. Diese Zeile muss beim entsprechenden Job im SLOCcount Publisher hinzugefügt werden. Vorher muss das Plugin hier aktiviert werden. Nun fügt man noch das neue Target bei den Ant-Targets die der Hudson aufrufen soll hinzu.

Build.xml anpassen:
Die Build.xml aus dem CI-Beitrag muss nun erweitert werden. Man öffnet diese und fügt z.B. nach dem phpcb Target folgenden Block hinzu:

1
2
3
4
5
6
7
8
9
<target name="sloccount">
        <mkdir dir="${base}/build/logs/sloccount"/>
        <exec executable="sloccount"
              dir="${basedir}"
              output="${base}/build/logs/sloccount.sc"
              failonerror="true">
            <arg line="--duplicates --wide --details --addlangall --datadir ${base}/build/logs/sloccount ${base}/svn"/>
        </exec>
</target>

Beim nächsten Build erhält man nun eine Auswertung. Zu beachten ist, dass diese Auswertungen nur eine bedingte Aussagekraft haben. Aber interessant ist es trotzdem.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.