Blog

PhoneGap-Entwicklung mit dem Jenkins-CI-Server

Android LogoJenkins LogoPhoneGap Logo

Im Artikel PhoneGap meets Maven wurde gezeigt, wie man Maven dazu nutzen kann, eine PhoneGap-App zu bauen. Nun zeigen wir darauf aufbauend, welche Möglichkeiten sich aus der Verwendung des CI-Servers Jenkins ergeben.

Was benötigen wir dazu? In diesem Beispiel gehen wir davon aus, dass Jenkins auf einem Ubuntu-Rechner läuft. Weiterhin …

  • … setzen wir eine funktionierende Jenkins-Instanz voraus. Eine Installationsanleitung ist auf der Jenkins-Homepagezu finden.
    • Auf demselben Rechner muss das Java SDK mit einer Version 6 oder größer installiert sein.
    • Auf demselben Rechner muss Maven in der Version 3.0.3 oder größer installiert sein.
  • Wir benötigen ein Subversion-Repository, in welches das Maven-Projekt eingecheckt werden muss. Jenkins muss Zugriff auf dieses Repository haben. Mit Git funktioniert das Ganze ebenso.
  • Wir benötigen einen User auf dem Ubuntu-Rechner, der über die notwendigen Rechte zur Installation des Android-SDK verfügt. Außerdem muss er in der Lage sein, die Umgebungsvariable ANDROID_HOME so zu setzen, dass andere Prozesse (Jenkins, Maven etc.) sie lesen können.
  • Wir benötigen eine Installation des Android-SDK. Dazu kommen wir jetzt.

Das Android SDK

Wir melden uns auf dem Ubuntu-Server an und laden das Android-SDK für Linux-Rechner herunter. Die URL für den Download finden wir auf der Android-Developers-Homepage.

dave@discovery.local:~ $ wget http://dl.google.com/android/android-sdk_r18-linux.tgz

Nach dem Download entpacken wir das SDK an eine geeignete Stelle.

 dave@discovery.local:~ tar xfz android-sdk_r18_linux.tgz cd android-sdk-linux/tools ./android update sdk --no-ui 

Das Update kann unter Umständen lange dauern, da eine Menge Dateien für die einzelnen Android-API-Versionen heruntergeladen werden.

Ganz zum Schluss setzen wir die Umgebungsvariable ANDROID-HOME:

 dave@discovery.local:~ export ANDROID_HOME=~/android-sdk-linux 

Das machen wir idealerweise so, dass auch andere Prozesse diese Variable lesen können. Eine gute Möglichkeit ist, diese Variable in der Datei /etc/environment zu setzen.

Jetzt haben wir eine Installation des Android-SDK, die von Maven und von Jenkins beim Bauen verwendet werden kann.

Build-Job in Jenkins anlegen

Bevor der Build-Job in Jenkins angelegt werden kann, muss unser Maven-Projekt in das Subversion-Repository eingecheckt werden. Ist das erledigt, legt man einen neuen Job in Jenkins an.

Wir beginnen mit dem Maven-Parent und setzen die Einstellungen für den Zugriff auf Subversion:

Jenkins-Job anlegen - Subversion-Einstellungen

Jenkins-Job anlegen - Subversion-Einstellungen

Dann folgen die Einstellungen für den Maven-Build:

Jenkins-Job anlegen - Maven-Einstellungen

Jenkins-Job anlegen - Maven-Einstellungen

Und das soll es fürs Erste auch schon gewesen sein. Wir speichern den neuen Job:

Jenkins-Job anlegen - Alle Einstellungen speichern

Jenkins-Job anlegen - Alle Einstellungen speichern

Die Einbindung von Artifactory und Sonar behandeln wir in einem weiteren Artikel.

Zunächst begnügen wir uns mit einem einfachen Job, der unser Projekt mit den Maven-Goals clean und install baut. Ein Klick auf Jetzt bauen startet den Build, der erfolgreich durchlaufen sollte. Für die untergeordneten Maven-Module können jetzt separate Jobs angelegt werden.

PhoneGap-Jobs in Jenkins

PhoneGap-Jobs in Jenkins

Die weiteren Möglichkeiten mit Jenkins sind:

  • Die Build-Artefakte (jar- und apk-Dateien) können in ein Build-Repository wie z.B. Archiva oder Artifaktory exportiert werden.
  • Mit Sonar kann eine statische Code-Analyse des Java- und JavaScript-Quellcodes durchgeführt werden.
  • Mit Jenkins-Plugins können automatisierte Tests durchgeführt werden.
    • Jenkins kann dazu automatisch Android-Emulatoren starten und mit diesen interagieren.

Doch dazu mehr im nächsten Artikel, der in Kürze hier erscheinen wird.

Bildquellen und Lizenz-Informationen

Holisticon AG — Teile diesen Artikel

Über den Autor

Jan beschäftigt sich sich seit knapp sieben Jahren mit dem Design, der Entwicklung und der Verbesserung von verteilten Web- und Unternehmensanwendungen. Die Erstellung solider, qualitativ hochwertiger Software, sowie deren Wartbarkeit liegen ihm dabei besonders am Herzen. Jan Weinschenker ist Organisator des Web-Performance-Meetups Hamburg.

Antwort hinterlassen