Zum Inhalt springen

Continuous Integration – Teil 2 (phpUnderControl)

In Teil 1 haben wir gesehen, was der Sinn von Continuous Integration ist, welche Komponenten ein Server bereitstellen muss und wie die Theorie hinter dem Namen aussieht. Beispielhaft betrachten wir phpUnderControl. Im Teil 3 werde ich den Hudson CI Server vorstellen, sodass man einen Vergleich wagen kann.

Als Basissystem wurde Debian Squeeze genutzt. Auf anderen Systemen wird die Installation ähnlich verlaufen.

phpUnderControl nutzt als Basis CruiseControl, was ein Java-CI-Server ist. Dieser wurde natürlich in Java entwickelt und setzt somit ein JRE voraus. Bei dem Test wurde Java6 von Sun genutzt.

CruiseControl wurde in der aktuellen Version heruntergeladen und im /opt Verzeichnis entpackt. In meinem Fall findet man nun den cruisecontrol-2.8.3 Ordner. Um ein späteres Upgrade zu ermöglichen wird ein symbolischer Link angelegt, der cruisecontrol heißt.

ln -sf cruisecontrol-bin-2.8.3/ cruisecontrol

Nun kann man CruiseControl schon starten. Als nächstes installiert man phpUnderControl. Am einfachsten erledigt man dies über PEAR. Dadurch werden auch gleich die Abhängigkeiten aufgelöst.

pear channel-discover components.ez.no
pear channel-discover pear.phpundercontrol.org 
pear install --alldeps phpuc/phpUnderControl-beta

Bei Squeeze wird man bei der Installation einige Fehler sehen. Diese kommen daher, dass Debian das Verzeichnis /usr/share/doc symbolisch verlinkt. Die einfachste Lösung ist den Link zu löschen und den letzten der obengenannten Schritte wiederholt durchzuführen. Nun funktioniert die Installation auch einwandfrei.

CruiseControl wird als nächstes gepatcht. Dies erledigt man über einen kurzen Befehl.

phpuc install /opt/cruisecontrol

Wenn man möchte kann man jetzt noch ein Beispiel-Projekt an legen:

phpuc example /opt/cruisecontrol

Wenn hierbei Probleme auftreten kann es sein, dass der PHP_CodeBrowser nicht installiert ist. Dieser wird benötigt, um den Sourcecode auf dem CI-Server in einer sehr hübschen Art und Weise durchzusehen. Das phpcb genannte Tool kann man über pear nachinstallieren. Aktuell ist es noch im Alpha-Status, daher ist die Versionsnummer notwendig und ist später vielleicht anders – also bitte bei Bedarf anpassen:

pear install --alldeps phpunit/PHP_CodeBrowser-0.1.1

Bevor man CruiseControl startet sollte man noch ant installieren.

apt-get install ant

Nun kann CruiseControl gestartet werden und man kann sich anschauen, was die Ausgabe so bietet.

/opt/cruisecontrol/cruisecontrol.sh

Die Url lautet dann ip:8080/cruisecontrol/ man muss evtl. etwas warten, da der Startup-Vorgang einen Moment dauert. Auf der Startseite findet man das Beispiel-Projekt „php-under-control“ und kann sich hier die einzelnen Tabs anschauen. Vorhanden sind hier Overview, Tests, Metrics, Coverage, Code Browser, Documentation, CodeSniffer, PHPUnit PMD. Die meisten Tabs sind selbsterklärend. Spannend ist der Codebrowser, der den Sourcecode in einer schöner Darstellung aufbereitet.

Im nächsten Schritt fügt man ein eigenes Projekt in CC und phpUnderControl ein. Hierfür biete ich keine ausführliche Beschreibung, da man dies in der phpUnderControl Dokumentation nachlesen kann. Die Beschreibung geht auf die einzelnen Aspekte ein.

Ich persönlich finde die vielen manuellen Schritte eher abschreckend und umständlich. Daher gibt es im nächsten Teil eine Alternative zu phpUnderControl, die mE übersichtlicher zu konfigurieren ist.

Published inAllgemein

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close