GitHub Actions - Eine Aktion zum Generieren von Zikula-Modulen

in  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 Dokumentation zu entnehmen. Ein simples Beispiel für die Nutzung findet sich ferner in diesem Artikel.

Eine Besonderheit hierbei ist, dass die verwendete jar-Datei bei jedem Build des Generators aktualisiert wird. Es handelt sich also immer um den aktuellen Git-Stand. Damit bietet es sich an, den Standalone-Generator zur kontinuierlichen Integration zu verwenden.

Einsatz in GitHub Actions

Wir stellen eine eigene GitHub Action bereit (generator-action), mit welcher der Generator mit zwei drei Zeilen in einen Workflow integriert werden kann.

Das sieht zum Beispiel so aus:

1
2
3
4
    - name: Call standalone generator
      uses: docker://guite/generator-action:latest
      with:
        args: MultiHook.mostapp Zikula/MultiHookModule "src/" true

Die Parameter haben die folgende Bedeutung:

  1. Der volle Name der Modelldatei. Beispiel: AcmeNews.mostapp.
  2. Name des Moduls inklusive dem Vendor und dem Module-Suffix. Beispiel: Acme/NewsModule.
  3. Pfad zum Verzeichnis, das den extensions/-Ordner enthält (inklusive Slash am Ende). Per Standard "".
  4. Ob zusätzliche Ausgaben erscheinen sollen (auf true setzen). Per Standard false.

Nach dem Generieren sollte man dann etwas mit dem veränderten Arbeitsbereich tun. Zum Beispiel könnte man die Änderungen committen oder, was mehr Sinn macht, einen Pull Request erstellen. Hier ein Beispiel für einen kompletten Workflow. Eine Liste der erstellten Pull Requests lässt sich hier einsehen.

Weitere Beiträge in Kategorie Builds & Tests

Abhängigkeiten automatisch aktualisieren mit Renovate
- Um Dependencies aktuell zu halten, wird bei GitHub oft und gerne der Dependabot eingesetzt. Mit Renovate existiert allerdings eine äußerst flexible Alternative, die im Folgenden kurz vorgestellt wird. …
Symfony-Projekte im Monorepo mit Nx bauen
- Mit dem Build-System Nx lassen sich beliebige Projekte in einem Monorepo auf einheitliche Weise testen und bauen. Es bedient sich verschiedener npm-Plugins, um dies für unterschiedliche Technologien …
Abhängigkeiten automatisch aktualisieren mit Dependabot
- Vor knapp eineinhalb Jahren haben wir gezeigt, wie man die Aktualisierung verwendeter Drittkomponenten mit GitHub Actions automatisieren kann. Zwischenzeitlich sind wir hierbei auf den Dependabot …
Hugo-Seiten im Netzwerk entwickeln und testen
- Hugo ist ein Generator für statische Seiten, welcher auf der Programmiersprache Go basiert. Die Inhalte werden mit Markdown verwaltet und dynamisch in HTML umgewandelt. Dies ist für die meisten …
SensioLabs Security Checker wurde eingestellt
- Zu den grundlegenden Aufgaben automatisierter Builds zählen unterschiedliche Prüfungen: so bietet es sich an, die Einhaltung der Coding-Styles zu überwachen, Qualitätsmetriken zu erheben und die …