Über das Einrichten eines Build-Systems zum Bauen von WinPhone Apps auf einem Windows Server, Teil 2 Hudson Build-Job
Im letzten Posting habe ich die wesentlichen Voraussetzungen aufgebaut, um eine WinPhone 7 App bauen zu können (CI Server, .NET Entwicklungsumgebung, Windows Phone 7 SDK). Heute geht es um das Einrichten eines Hudson Build-Jobs.
Hudson ist ein populärer Continuous Integration Server aus dem Java Umfeld. Die Installation der Software ist recht einfach, wie ich im letzten Posting gezeigt hatte. Hudson bietet ein Plugin-Konzept an, um Hudson an verschiedenste Anforderungen anzupassen. Zum Bauen der App werden zwei Plugins benötigt.
Optional können noch weitere Plugins installiert werden, wie zum Beispiel:
Das Hudson NUnit Plugin ist eine Alternative zu MSTest plugin und setzt voraus, dass die Unittests mit NUnit geschrieben worden sind. Das Task Scanner Plugin untersucht den Code auf Kommentare, die einen Text wie „FIXME“ oder „TODO“ enthalten. Das Warnings Plugin meldet Compiler Warnings an Hudson, die ansonsten in den Logausgaben beim Bau der Solution untergehen würden. Das Hudson disk-usage plugin zeigt den Festplattenspeicherverbrauch der einzelnen Jobs auf dem Hudson auf.
Die Installation der Plugins ist gut gelöst. Unter der dem Menu „Hudson verwalten“ ->“Plugin verwalten“ und dann unter dem Reiter „Verfügbar“ befindet sich eine sehr lange Liste von vorhandenen Plugins. Wählen Sie die Plugins mittels der Checkboxen aus, gehen Sie bis zum unteren Ende der Seite und klicken Sie auf den „Installieren“ Button. Nach dem Download müssen Sie den Hudson-Prozess von Hand stoppen und wieder starten (java.exe –jar hudson.war)
Unter dem Menü „Hudson verwalten“ -> „System konfigurieren“ sind alle globalen Konfigurationen für Hudson zugänglich zu Themen wie zum Beispiel Security, Email-Einstellungen oder Java Tooling. Die einzige wichtige Einstellung im Rahmen der WinPhone 7 App ist der Pfad auf die MSBuild.exe Datei.
Kommen wir nun zum eigentlichen Grund dieses Postings. Unter dem Menüpunkt „Neuen Job anlegen“ legen wir einen „Free Style“-Job mit dem Namen „TvdServiceCenter.NET“ zum Bau der WinPhone App an:
Der erste Schritt in der Konfiguration des Jobs ist die Angabe eines Pfades auf die Sourcen in einem Source-Code-Managementsystem wie CVS, GIT, MS Team Foundation Server oder Subversion.
Die Sourcen der ServiceCenter App befinden sich gesichert in einem Subversion Repository. Für den Zugriff auf Subversion muss der Hudson-Job sich gegenüber Subversion authentifizieren (soweit kein Public Access für das Projekt in Subversion eingestellt ist). Klicken Sie auf den Link „authentifizieren“, wenn Sie die obige Meldung bekommen.
Im nächsten Schritt wird der Build-Auslöser eingestellt. Zwar kann man den Job zum Bau der WinPhone App immer manuell starten, aber eigentlich erwartet man, dass der Job startet sobald eine neue Version der Sourcen verfügbar ist.
Mit der obigen Einstellung fragt Hudson alle 5 min Subversion nach einer neuen Version der Sourcen und startet gegebenenfalls den Job. Die Syntax der Konfiguration kann mit einem Klick auf das Fragezeichen rechts neben der Textarea eingeblendet werden.
Im Abschnitt „Build-Verfahren“ wird bei einem „Free-Style“-Job der eigentliche Build-Schritt hinzugefügt. Hier wählen Sie „Build a Visual Studio Project or solution using MSBuild.“ aus.
Selektieren Sie Ihre MSBuild Version und geben Sie Ihre Solution- oder Project-Datei an. Das Arbeitsverzeichnis für den Job ist das Hauptverzeichnis der Sourcen aus Subversion auf dem lokalen Verzeichnis. Sollte sich dort Ihre Solution- oder Project-Datei befinden, dann können Sie ohne weitere Pfadangabe die Datei unter „MsBuild Build File“ angeben.
Genug konfiguriert, jetzt wird die WinPhone App gebaut. Also, alle Konfigurationen mit „Übernehmen“-Button bestätigen und auf der folgenden Seite den Job mit dem Link „Jetzt bauen“ starten.
Hudson können Sie bei der Job-Ausführung beobachten. Klicken Sie auf das Icon:
Nach einem erfolgreichen Job-Lauf sollten Sie einen blauen Ball (erste Spalte in der Tabelle) sehen, wie zum Beispiel auf der Hudson Hauptseite:
Ein roter Ball kennzeichnet einen fehlgeschlagenen Job-Lauf.
Im nächsten Schritt konfigurieren wir das Unit-Testing der ServiceCenter App. Dazu wird die Konfiguration des Jobs an zwei Punkten erweitert. Zunächst wird ein weiterer Build-Schritt eingefügt. Mit dem Build-Schritt „Windows Batch Datei ausführen“ wird MSTest zu Ausführen der Unit-Test aufgerufen.
Das Ergebnis der Unit-Tests wird in die Datei unittest.trx geschrieben. Damit Hudson das Testergebnis als Webseite darstellt, wird zum Schluss das Hudson MSTest Plugin noch konfiguriert:
Die Darstellung der Testergebnisse kann auf der Job-Seite angesehen werden:
Damit ist nun die WinPhone 7 App kompiliert und getestet. Gut, aber wie komme ich jetzt an die gebaute App? Auf der Job-Seite kann im Arbeitsbereich der Workspace des Jobs angezeigt werden. Dort ist auch die fertige WinPhone 7 App zu finden.
Im nächsten Posting zeige ich, wie die optionalen Plugins genutzt werden, damit zum Beispiel die oben aufgeführten Trendgrafiken angezeigt werden.
Continuous Integration von Windows Phone 7.x Apps Über das Einrichten eines Build-Systems zum Bauen von