Jenkins für Continuous Integration auf Ubuntu installieren
Jeder Entwickler, der größere PHP Anwendung entwickelt, sollte sich mit dem Thema Continuous Integration auseinandersetzen. Continuous Integration oder auf Deutsch Kontinuierliche Integration ist ein Konzept, welches sich auch im PHP Umfeld durchgesetzt hat. Dabei geht es darum, dass Änderungen an einer Anwendung so früh wie möglich in die Versionskontrolle eingecheckt wird. Dabei wird die Qualität der Anwendung durch automatisierte Tests überprüft.
Ein Tool, welches sich dabei als Quasi Standart durchgesetzt hat, ist Jenkins (abgespaltet von Hudson). Diese Installation und Konfiguration beschreibe ich in diesem Artikel für Ubuntu 12.04 Server Edition.
Jenkins ist im Grunde nichts anderes als ein webbasiertes Java Tool, welches durch verschiedene Erweiterungsmöglichkeiten perfekt an die PHP Entwicklung angepasst werden kann. Der Code durchläuft verschiedene Metriken und die Ergebnisse werden grafisch aufbereitet übersichtlich angezeigt.
Jenkins ist extrem erweiterbar und wird somit zu einem universellen Tool, welches einmal eingesetzt, kaum noch wegzudenken ist.
Installation
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo aptitude update
sudo aptitude install jenkins
Die Installation sollte ohne Probleme durchlaufen. Dazu werden einige Pakete nachinstalliert, je nachdem wie frisch die Ubuntu Installation ist.
Nach der Installation kann die Weboberfläche mit http://localhost:8080 oder http://www.ihredomain.de:8080 aufgerufen werden. Die Weboberfläche sollte sich mit „Willkommen bei Jenkins! Legen Sie einen neuen Job an, um loszulegen.“ melden.
Wie geht es weiter?
Leider bietet Jenkins kein PHP Template. Dies ist aber nicht weiter tragisch, da sich darüber Sebastian Bergmann bereits Gedanken gemacht hat und die Anleitung kann hier nachgeschaut werden. Dort wird auch beschrieben, welche Plugins für die PHP Entwicklung nachinstalliert werden sollten.