GitHub Actions - PHP-Projekte bauen und testen

in  Builds & Tests , , ,

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 Möglichkeiten:

  • unterschiedliche PHP-Versionen verwenden
  • PHP-Extensions einrichten
  • PHP-Konfigurationen vornehmen
  • zusätzliche, häufig verwendete Tools installieren

Diese Aktion sollte für allgemeine Anwendungen keine Wünsche offen lassen. Wir verwenden diese Aktion seit einigen Monaten in mehreren Repositories ohne jegliche Probleme.

Weitergehende Möglichkeiten

Auch Matrix-Builds sind möglich: hiermit lässt sich ein Workflow für mehrere Betriebssysteme und/oder PHP-Versionen ausführen.

Beispiel:

1
2
3
4
5
6
runs-on: ${{ matrix.operating-system }}
strategy:
  matrix:
    operating-system: [ubuntu-latest, windows-latest, macos-latest]
    php-versions: ['7.2', '7.3', '7.4']
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}

Es gibt darüber hinaus übrigens auch eine ganze Reihe an Beispiel-Workflows. Diese stellen einige typische Setups für unterschiedliche Frameworks, wie etwa Symfony oder Laravel, in Kombination mit verschiedenen Datenbank-Systemen, zur Verfügung.

phpqa - eine immens große Toolbox

Sollte die Liste unterstützer Zusatzwerkzeuge nicht ausreichen, weil man bestimmte weitere Metrik-Tools oder ähnliches verwenden möchte, gibt es grundsätzlich bzw. mindestens drei Möglichkeiten:

  1. Die benötigten Tools einfach im Workflow, zum Beispiel mittels wget, herunterladen. Nachteil: ggf. müssen regelmäßig Links aktualisiert oder Versionen angepasst werden.
  2. Eine Abhängigkeit via composer.json hinzufügen, um die gewünschten Werkzeuge via Composer zu laden. Nachteil: ggf. können Konflikte zwischen mehreren Tools entstehen.
  3. Die folgenden Docker-Images verwenden.

Mit phpqa steht eine Liste von Docker-Containern bereit, die derzeit bereits über 60 Werkzeuge für PHP-Metriken und -Testing bereitstellen. Dieses Angebot kann auch mit GitHub Actions verwendet werden.

Ausblick

Nach dieser kleinen Einführung in die Nutzung von GitHub Actions für PHP-Projekte geht es im kommenden Artikel mit einem anderen Use Case weiter.

Weitere Beiträge in Kategorie Builds & Tests

GitHub integriert Code Security Scanner
- Im offiziellen GitHub Changelog werden regelmäßig Beiträge über unterschiedliche Neuerungen und Innovationen auf der GitHub Plattform veröffentlicht, zum Beispiel in Bezug auf Funktionen in der …
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 …
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 …