Symfony-Projekte im Monorepo mit Nx bauen

in  Builds & Tests , , ,

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 umzusetzen. Ein Projekt kann dabei entweder als Applikation oder als Bibliothek abgebildet werden. Dies kann für ein Java-basiertes Projekt etwa durch Maven oder Gradle erfolgen.

Um ein einzelnes Projekt zu testen oder zu bauen, reicht ein Aufruf in der Form nx test <app> bzw. nx build <app>. Durch die Möglichkeit, dass Projekte Abhängigkeiten untereinander deklarieren können, kann dies auch transitiv geschehen. Nachdem ein Projekt gebaut worden ist, werden die Builds von abhängigen Projekten ebenfalls durchgeführt.

Besonders mächtig wird das Tool jedoch durch die sogenannten affected builds: anhand von zwei Git-Ständen kann Nx ermitteln, welche Projekte durch die damit einhergehenden Code-Änderungen betroffen sind, und baut (nur) diese Projekte neu. Ein Aufruf von nx affected:test führt sogar nur die Tests aus, die mit einer Änderung verbunden sind.

Seit kurzem steht auch ein Plugin für Symfony-Applikationen zur Verfügung: nxt-php unterstützt Projekte, welche die Standardstruktur von Symfony verwenden. Das Plugin verwendet Composer zum Bauen und PHPUnit zum Testen.

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. …
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 …
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 …