© saicle/Shutterstock.com
Kolumne: Quality Time

Automatisieren was geht …


Der Volksmund sagt: Als Softwareentwickler sollte man jeden Arbeitsschritt, den man mindestens zwei Mal ausführen muss, automatisieren. Das spart langfristig Zeit und vermeidet insbesondere die Fehler, die sich gerne durch langweilige manuelle Tätigkeiten einschleichen. Doch bisher kocht jedes Team noch sein eigenes Süppchen, obwohl ein wesentlicher Teil der zu automatisierenden Schritte in jedem PHP-Projekt gleich ist. Das Projekt Ant build-commons (ABC) [1] versucht hier mit einem Framework für Build-Skripte Abhilfe zu schaffen.

Es gibt Dinge, die will man über ein einfaches Kommando abrufbar haben, um sie bei der Entwicklung, im CI-Server oder beim Rollout einfach ausführen zu können. Dazu zählen beispielsweise das Ausführen von Unit und Integration Tests, das Paketieren eines Release und das Ausrollen desselbigen. Das build-commons-Projekt stellt ein modulares und erweiterbares Ant-Build-Skript bereit, das diese und weitere Aktionen bereits implementiert und das nur noch konfiguriert bzw. teilweise individualisiert werden muss. Einzelne Schritte werden in Form von Targets realisiert, die entsprechend voneinander abhängen:

  • clean setzt den lokalen Projektstatus zurück, indem z. B. Artefakte aus einem vorherigen Lauf gelöscht werden.

  • initialize führt die Initialisierung des Build-Verzeichnisses durch und aktualisiert den Quellcodestand aus der Versionsverwaltung.

  • compile macht, per Default, einen PHP-Syntax-Check auf geänderten Dateien.

  • test dient der Ausführung der Unit Tests.

  • package kann ein Release in Form eines ZIP-Archivs erzeugen, optional auch ein PEAR-Paket oder ein PHAR.

  • integration-test führt entsprechend die Integration Tests aus, in der lokalen Entwicklungsumgebung oder gegen eines der Release-Archive.

  • verify dient der Erstellung zeitintensiver Qualitäts-Reports, wie die Code-Coverage-Analyse der Tests, und statischer Analysen mit CodeSniffer, PHP_Depend etc.

  • install führt eine lokale Installation des Projektes durch, was beispielsweise das Kopieren von Dateien, aber auch Datenbankupdates beinhalten kann.

  • deploy erlaubt letztendlich das Ausrollen des Projekts auf einen entfernten Server.

Mit diesen Targets lässt sich bereits der Standardbedarf der meisten Projekte decken. Diese benötigen lediglich eine entsprechende Property-Datei mit passenden Einstellungen für build-commons. Aber auch für komplexe Projekte lässt sich das Framework benutzen, denn jeder Schritt kann mittels Hooks erweitert oder durch eigene Implementierungen ersetzt...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang