
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.
Kommentare
Einen Kommentar schreiben