DeploymentSoftware Qualität

Continuous Integration: Eine Einführung in PHPCI

Continuous Integration: Eine Einführung in PHPCI

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 Integration: Eine Einführung in PHPCI
Continuous Integration: Eine Einführung in PHPCI

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:

Konsolenausgabe bei der Continuous Integration Tool Installation
Konsolenausgabe bei der Continuous Integration Tool Installation

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert