Artikel
von Patrick Froch

GitLab CI benutzen

Nachdem ich im letzten Artikel gezeigt habe, wie man GitLab CI einrichtet, möchte ich heute ein Beispiel geben, wie man einen PHP Toolchain nutzt um z.B. ein Contao Projekt zu testen. Bei mir liegen die Projekte meist im Unterordner src/Esit/PROEJKTNAME. Dies ist in den Testcontainern dann das Rootverzeichnis, da auch nur dies versioniert wird.

.giblab-ci.yml

Die Datei .gitlab-ci.yml beschreibt die nötigen Schritte um die Tests durchzuführen. Ich verwende auch hier Docker, da ich so einige Erkenntnisse aus dem Artikel über den Aufbau meiner Entwicklungsumgebung ("Warum und wie phpfarm bei mir abgelöst wurde") verwenden kann. Auch hier werden die offiziellen PHP Images verwendet.

Es werden hier drei Jobs definiert. compatibility_check prüft die Kompatibilität zu PHP 7.0, 7.1 und 7.2 mittels PhpCodeFixer. codestyle_basic führt die statische Codeanalyse mit PHP_CodeSniffer durch und prüft auf doppelten Code mit PHP Copy/Paste Detector. Zu guter Letzt werden die UnitTests mit PHPUnit ausgeführt. Hierzu wird zunächst über composer Contao installiert, damit die Abhängigkeiten gefunden werden. Ist dies erledigt, können die Tests ausgeführt werden. Auf die Deatils zu UnitTests werde ich hier jetzt nicht eingehen, da sie schon ausführlich in diesem Blog behandelt wurden.

Aufbau

Für jeden Job wird zunächst mit stage festgelegt, zu welcher Grupper ergehört. Dann wird spezifiziert, welches image verwendet werden soll. Unter dem Punkt before_script werden die Anweisungen für die Vorbereitung der Tests angegeben. Hier können z.B. auch PHP Erweiterungen installiert werden. Die eigentlichen Tests stehen dann unter script. Eine ausführliche Beschreibung der Konfiguration findet man hier.

Ich helfe gerne

Da die Anforderungen im Bereich Softwareentwicklung immer komplexer werden, fällt es zunehmend schwerer, fortwährend höchste Qualität zu erbringen. Ich beschäftige mich seit Jahren mit Themen wie Softwarequalität, Softwarestrukturierung und Event-driven Development. Ich habe hierzu einige Veranstaltungen (u. a. bei Sebastian Bergmann) besucht und selbst mehrere Vorträge (z.B. auf der Contao Konferenz oder dem Contao Barcamp) gehalten. Gerne helfe ich anderen Entwicklern bei der Einführen entsprechender Strukturen und Techniken in ihren Firmen.

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.