Tools für Continuous Integration dienen dem automatischen Testing von Code in einer Entwicklungsumgebung. In diesem Beitrag erfahrt ihr zunächst einmal, wie man PHP Continuous Integration installiert.
Continuous what?
Als Dozent für die PHP-Schulungen von Entwicklungshilfe NRW interessiere ich mich über die reine PHP-Entwicklung hinaus für das Thema Continuous Integration (CI). Neben der lokalen Entwicklung mit Tools wie Vagrant und PhpStorm zur schnellen und guten Programmierung an PHP-Applikationen ist eine stabile Pipeline zum Testen und Ausliefern (Deployment) des Codes Gold wert. Funktionierende Automatisierung spart immer Zeit und Geld. Wenn zusätzlich dabei noch getestet wird, schlafe ich als Entwickler direkt ruhiger. CI-Tools machen genau das: Sie testen in einer Entwicklungsumgebung euren Code. Jeder Durchlauf eines Prozesses wird dabei „Build“ genannt. Ziel ist es, durch automatisierte Tests und die vorherige saubere Entwicklung einen fehlerfreien Build auszuliefern.
Vielen Entwicklern wird Jenkins (bzw. Hudson) ein Begriff sein. Wer andere Erfahrungen mit ähnlichen Tools gemacht hat, kann das gerne als Kommentar hier mit einbringen.
PHPCI als Continuous Integration Tool
Heute gebe ich eine kleine Einführung in PHP Continuous Integration, kurz PHPCI. Als PHP-Entwickler habe ich zwar gute Erfahrungen mit Jenkins gemacht – ich finde aber den Ansatz von PHPCI besser, als CI-Tool für PHP-Projekte in PHP geschrieben zu sein. So verstehe ich als Entwickler das Tool besser. Obwohl PHPCI noch ein recht junges Projekt ist, finde ich die derzeitige Funktion schon brauchbar, und es macht Spaß, damit zu experimentieren. Das Github-Projekt findet ihr hier. Doch vor dem Vergnügen kommt erstmal kurz die Arbeit, sprich die Installation. Als Voraussetzung wird hier von einem Debian-basierten Webserver mit installiertem Apache und MySQL-Server ausgegangen. Paketinstallationen auf einem Server sowie das Tool composer sollten euch geläufig sein.
Installation von PHPCI
Zunächst wechseln wir in das Webverzeichnis des Servers (default /var/www):
cd /var/www
Nun erstellen wir per composer das PHPCI-Projekt. Bei dem letzten Befehl solltet ihr eure Datenbank-Zugangsdaten zur Hand haben.
composer create-project block8/phpci phpci --keep-vcs --no-dev cd phpci && composer install ./console phpci:install
Das Ergebnis sollte so aussehen:
Eine einfache Vhost-Konfigurationsdatei, die dem Apache hinzugefügt und aktiviert wird, reicht zum Aufrufen unseres neuen Tools zur Continuous Integration:
ServerAdmin __ADMIN__@__SERVER__ ServerName phpci.__SERVER__ DocumentRoot /var/www/phpci/public DirectoryIndex index.php Options Indexes FollowSymlinks MultiViews Require all granted AllowOverride All LogLevel warn
Solltet ihr nicht mit einer Seite wie dieser hier empfangen werden, schaut bitte in die Installationshilfe auf der PHPCI-Seite nach oder schreibt uns hier.
Wenn ihr jetzt die eingetragene URL aufruft, seht ihr die Startseite eures neuen CI-Tools, und ihr könnt euch einloggen.
Dieser komplette Installationsvorgang dauert keine 30 Minuten. PHPCI ist eine kostenlose, quelloffene Variante, die euch in die Lage versetzt, sehr schnell eine eigene Build-Pipeline als Grundlage für eine Continuous-Integration-, Continuous-Delivery- oder Continuous-Deployment-Strategie aufzubauen. Um die beiden letztgenannten Punkte geht es an dieser Stelle allerdings nicht.
Weitere Posts zum Thema Continuous Integration
Ich versuche, hier so schnell wie möglich weitere Anleitungen über PHPCI zu posten. Geplant sind derzeit auf jeden Fall:
- Aufsetzen eines versionskontrollebasierten PHP-Projektes in PHPCI
- Unit-Tests mit PHPCI
- Acceptance-Tests mit Codeception in PHPCI
- Weitere Tests wie Mess Detection und Code Coverage
Ich hoffe, meine kurze Anleitung war hilfreich für euch. Wenn ihr noch Fragen dazu habt, könnt ihr diese gerne unter Verwendung der Kommentarfunktion stellen. Ansonsten verlinke ich relevante Posts hier.
Einen detaillierten Überblick über unsere PHP-Schulungen für Webentwickler findet ihr übrigens auf der Website von Entwicklungshilfe NRW.
3 thoughts on “Continuous Integration: Eine Einführung in PHPCI”
Nach der Installation auf Apache bekomme ich eine Weiterleitung auf
http://localhost/phpci/public/session/login
die mir meinen Localhost anzeigt.
Die .htaccess ist aus der .htaccess.dist kopiert …
Wo kann ich denn die Konfiguration nach der Installation bearbeiten ?
Hallo Wolfgang,
in deinem PHPCI-Installations-Ordner gibt es einen PHPCI-Ordner, darin ist eine config.yml. In dieser kann man die URL und die Datenbank-Verbindung konfigurieren.
Wurde PHPCI denn auf localhost installiert?
Mehr Infos auch hier: https://github.com/Block8/PHPCI/issues/226
Beste Grüße
Danke,
ich glaubte, die Anwendung auch ohne virtuellen Host aufrufen zu können.
Aber dafür scheint sie nicht vorgesehen zu sein.
LG,
Wolfgang