Systemupdate zu Ubuntu 10.04 Lucid Lynx
Da liefert uns die Ubuntu Community die 10.04LTS Version und wie bekommt die unserem CI Server? Die Antwort ist abhängig von den administrativen Eingriffen und dem Alter der Projekte. Kurz gesagt: “schlecht”.
Wichtige Änderungen:
- PHP wird auf den 5.3er Zweig gehoben
- Suns JAVA aus den offiziellen Quellen rausgenommen
Die Sun-Java Verbannung aus den supporteten Repos sorgt für eine Deinstallation der vorhandenen Sourcen und damit für das Aus unseres CruiseControl Dienstes. Nach den PHP Updates und dem Erhalten der vorhandenen php.ini folgten nette Warnings auf der Konsole, die aber schnell beseitigt werden konnten. Beachtet die Änderungen, die bei einigen Projekten auch zu unerwartetem Verhalten führen können.
Das sollte uns nicht abschrecken. Die Geschwindigkeitsvorteile und auch die neuen Möglichkeiten sind ausreichende Gründe die Anpassungen zu meistern.
Wie gelangt Ihr an die Sun-Java Installation (wann wird Oracle das Wording übernehmen)?
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
Wenn Ihr die Lizenz bereits einmal bestätigt habt, läuft die Installation komplett durch. Viel Erfolg! Hinweise und Erfahrungen sind immer willkommen.
Quick install list
system requirements:
- Ubuntu (up to 8.04) minimal or Debian 5
- root access
- user for cruisecontrol runtime (this example: developer)
CruiseControl Install
apt-get update
apt-get install sun-java6-jdk
apt-get install unzip
apt-get install wget
apt-get install make
cd /opt
wget http://downloads.sourceforge.net/cruisecontrol/cruisecontrol-bin-2.8.2.zip
unzip cruisecontrol-bin-2.8.2.zip
mv cruisecontrol-bin-2.8.2 cc
useradd developer
chown -R developer /opt/cc
wget -O /etc/init.d/cruisecontrol http://phpundercontrol-server.googlecode.com/files/cruisecontrol-start-1.1
chmod +x /etc/init.d/cruisecontrol
update-rc.d cruisecontrol defaults
phpUnderControl Install
apt-get install php5
apt-get install php5-dev
apt-get install php-pear
pear upgrade PEAR
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear config-set preferred_state beta
pear install --alldeps phpunit/phpUnderControl
pecl install xdebug
phpuc install /opt/cc
Versions
2009/10/01:
install ok: channel://pear.phpunit.de/PHPUnit-3.4.0
install ok: channel://pear.php.net/PHP_CodeSniffer-1.2.0
install ok: channel://pear.php.net/PhpDocumentor-1.4.3
install ok: channel://components.ez.no/Base-1.7
install ok: channel://pear.php.net/Image_GraphViz-1.3.0RC3
install ok: channel://pear.php.net/Log-1.11.5
install ok: channel://pear.php.net/DB-1.7.14RC1
install ok: channel://pear.php.net/MDB2-2.5.0b2
install ok: channel://pear.php.net/Mail-1.2.0b2
install ok: channel://pear.php.net/XML_Parser-1.3.2
install ok: channel://pear.php.net/Net_Socket-1.0.9
install ok: channel://pear.php.net/Auth_SASL-1.0.3
install ok: channel://components.ez.no/Graph-1.4.3
install ok: channel://pear.php.net/XML_Beautifier-1.2.0
install ok: channel://pear.php.net/Net_SMTP-1.3.3
install ok: channel://pear.phpunit.de/phpUnderControl-0.4.7
Testen macht Spaß

Was ist der Antrieb beim Coden? Für mich ist es der Spaß am Problemlösen, Knobeln, Macht über die Maschine zu bekommen- kurz Erfolgserlebnisse.
Woher soll man die nehmen, wenn in den tiefen Schichten einer Anwendung ohne sichtbare Erfolge entwickelt wird? Dafür wurden die Unit Tests erfunden. Sebastian Bergmann konnte es mit PHP und ohne diese Erfolgserlebnisse nicht mehr aushalten - er schrieb das Testframework PHPUnit.
Es gibt auch noch andere Versionen dieser Geschichte.
Example Projekt testen
Holen wir uns etwas Freude mit unserer Math Klasse und bringen die Unit Tests in den grünen Bereich. weiterlesen PHPUnit unter Kontrolle
Codesniffer im Projekt nutzen

Bei aller Freude über die erfolgreiche Installation wollen wir den eigentlichen Antrieb, die monotonen Arbeiten macht phpUnderControl für uns, nicht vergessen. Es wird Zeit mal wieder Quellcode zu bearbeiten.
2. Meilenstein
- der Codingstyle für Codesniffer wird auf “Zend” festgelegt
- Refactoring: Code Style
weiterlesen Refactoring des Example Projekts
Die Logs nicht vergessen
Allzu gerne werden sie vernachlässigt - die Logdateien und alten Sicherungen. Unser phpUnderControl läuft nun schon einige Tage und ohne weitere Konfiguration wird das Example Projekt “php-under-control” alle 5 min neu getriggert und es erzeugt fleißig Dokumentationen und Auswertungen.
Da unser Continuous Integration Tool seinem Namen alle Ehre macht erzeugt es fortlaufend neue Dateien im ./artifacts Ordner. Das muss nicht auf jedem Server zum Problem führen. Bei richtiger Konfiguration sind diese Dateien sogar gewollt. Doch wer braucht schon die Nightly Builds der letzten 3 Jahre?
Also entweder das Aufräumen wird als Teil des Build Prozesses integriert und damit voll steuerbar oder die schnelle Variante die phpUnderControl mitliefert reicht für den Anfang. weiterlesen Administration phpUnderControl
PhpUnderControl ist nach der Installation dein neuer Mitarbeiter in der Qualitätsüberwachung. Da im Hintergrund mehrere Builder bereit stehen (CCWeb: “There are builders supplied for Ant, NAnt, Maven, Phing, Rake, and Xcode and the catch-all exec“), lassen sich weitere “lästige” Arbeiten verlagern, wie das Bereitstellen von Programmversionen, die Veröffentlichung auf Staging- und/oder Produktivservern, das Anpassen von Datenbanken, die Versionierung beim Erreichen der Anforderungen…. weiterlesen Erstes Projekt in phpUnderControl
Projekt PHP Entwicklungsserver mit Continuous Integration

Wie behalte ich die Übersicht über meine Projekte?
Wer kümmert sich um die Dokumentation?
Laufen die Tests noch?
Soll das Entwicklungstempo hoch gehalten werden und/oder agile Methoden zum Einsatz kommen, dann wird eine technische Lösung für diese Fragen gesucht.
PHP Projekte müssen nicht hilflos auf Ruby Tools schielen oder JAVA Lösungen beneiden. Es gibt interessante Anwendungen, die einen Tester, Builder und Dokumentator ersetzen. Dafür sind nur 237 Webquellen durchzuarbeiten, 793 weiterführende Links zu überschauen und Beta Versionen anzutesten.
Hört sich nicht sehr einladend an?
Ich habe in den letzen Tagen 3 mal ein phpUnderControl aufgesetzt und da die Sucherei nicht weniger wurde, mich gezwungen es zu dokumentieren. Für die von mir benutzten aktuellen Versionen ist es jetzt komplett nachvollziehbar. weiterlesen Installation phpUnderControl from scratch