GitHub Actions - Eine Aktion zum Bauen und Testen von Zikula-Modulen

in  Builds & Tests , , , , ,

GitHub Actions - Eine Aktion zum Bauen und Testen von Zikula-Modulen

Vor ein paar Wochen haben wir unsere generator-action vorgestellt, welche die einfache Generierung von Zikula-Erweiterungen mit dem Standalone Generator von ModuleStudio erlaubt. Diese Action wird als Docker Image bereitgestellt und kann auch losgelöst von GitHub Actions verwendet werden.

Die zikula-action

Analog dazu steht auch eine weitere GitHub Action zur Verfügung: die zikula-action. Dieses Docker Image basiert auf der ebenfalls bereits vorgestellten phpqa-Toolbox und hat somit Zugriff auf zahlreiche Tools rund um Analyse, Tests und Qualitätssicherung.

Die Idee besteht darin, dass man die gewünschte Zikula-Version auswählt und die Liste der gewünschten Tools und Prüfungen angibt, die ausgeführt werden sollen. Es war eine bewusste Entscheidung, hier auf Einstellbarkeit im Detail zu verzichten und dafür die Dinge schnell und einfach steuern zu können (convention over configuration). Denn so lassen sich Änderungen zentral in der Action vornehmen und werden von dort aus auf alle möglichen Extensions angewendet.

Was steckt drin?

Grundsätzlich führt die zikula-action folgende Schritte aus:

  1. Ausführen von Composer zur Installation von Abhängigkeiten des entsprechenden Moduls.
  2. Herunterladen der gewünschten Zikula Core Version (entweder Releases oder Entwicklungsversionen von Git)
  3. Ausführen von Composer zur Installation von Abhängigkeiten des Cores (nur bei Entwicklungsversionen).
  4. CLI-basierte Installation von Zikula.
  5. CLI-basierte Installation des Moduls.
  6. Ausführen diverser Tools (einstellbar): Linter, Coding Style, PHPUnit, Sicherheitsprüfungen, Infos über diverse Metriken, andere Checks bzgl. Deprecations, Code Smells etc.
  7. Paketierung des Moduls inklusive erneuter Installation der Abhängigkeiten (ohne Entwicklungsswerkzeugen).

Ein Workflow als Beispiel

Damit die Installation von Zikula funktioniert, muss eine Datenbank bereitgestellt werden. Das geht zum Glück mit GitHub Actions sehr einfach. Hier ein Beispiel für einen kompletten Workflow. Am Ende wird dann das Verzeichnis mit den Release-Archiven als Artefakt hochgeladen.

Weitere Beiträge in Kategorie Builds & Tests

GitHub Actions - Eine Aktion zum Generieren von Zikula-Modulen
- Der Standalone-Generator ModuleStudio bietet einen Standalone-Generator, mit dem sich jederzeit eine Anwendung über die Kommandozeile generieren lässt. Einige allgemeine Informationen hierzu sind der …
GitHub Actions - Programmatische Trigger, Build Pipelines, Dashboard
- In diesem Beitrag geht es darum, mehrere und unterschiedliche Build Jobs miteinander zu verknüpfen. Je größer eine Build Infrastruktur wird, desto häufiger wird man mit solchen Anforderungen …
GitHub Actions - Java-Projekte bauen und testen
- Nachdem im letzten Artikel gezeigt wurde, mit welchen Mitteln sich in GitHub Actions Projekte auf Basis von PHP verarbeiten lassen, schauen wir nun auch einmal kurz in die Java-Welt. Werkzeuge für das …
GitHub Actions - PHP-Projekte bauen und testen
- Eine Aktion zur PHP-Einrichtung Für die wichtigsten Punkte, die notwendig sind, um ein auf PHP basierendes Projekt zu testen, gibt es die Action setup-php. Diese bietet unter anderem folgende …
GitHub Actions - Abhängigkeiten automatisch aktualisieren
- Nach der allgemeinen Einführung in GitHub Actions kommen wir nun zu dem ersten Anwendungsfall, der in vielen Projekten angewendet werden kann. Fast jedes Softwareprojekt bedient sich heutzutage …