Selbst gehosteter Dienst
thomhurst/ModularPipelines avatar
thomhurst/ModularPipelines

ModularPipelines: CI/CD-Pipelines als C#-Module

Schreiben Sie Ihre Pipelines in C#. | | ModularPipelines.Java | Helfer für die Interaktion mit Java-Build-Tools (Maven, Gradle).

549 Sterne23 ForksC#MIT

Auf einen Blick

Was ist das?
Das Repository ersetzt YAML-Pipeline-Dateien durch C#-Modulklassen und ergänzt lokales Debugging, Compile-Zeit-Prüfungen und automatische Parallelisierung.
Für wen ist es gedacht?
ModularPipelines ersetzt YAML-Pipeline-Dateien durch C#-Modulklassen; automatische Parallelisierung, Roslyn-Analysen und lokales Debugging sind die dokumentierten Vorteile. Die Repository-Metadaten weisen eine MIT-Lizenz aus, der Lizenztext lag in den geprüften Materialien jedoch nicht vor, und das README weist darauf hin, dass Nebenversionen Breaking Changes enthalten können, die in den Release Notes dokumentiert werden.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich C#, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Die YAML-Probleme, von denen dieses Projekt ausgeht

Das README beginnt mit vier Beschwerden über YAML-Pipelines: Sie lassen sich nicht lokal debuggen, Tippfehler in Variablennamen führen zu langsamen Feedback-Schleifen statt Compile-Fehlern, Logik-Wiederverwendung bedeutet YAML-Duplikation an mehreren Stellen, und ein Wechsel von GitHub Actions zu Azure Pipelines erfordert eine Neuformulierung der Konfiguration. ModularPipelines wird als Ersatz angeboten. Die Pipeline wird als normaler C#-Code geschrieben und mit dotnet run ausgeführt. Das README behauptet nicht, dass C# alle diese Probleme beseitigt, sondern nur, dass der codebasierte Ansatz verändert, wo ein Fehler erkannt wird: in der IDE, vor dem Push. Jeder Schritt einer Pipeline ist eine Modulklasse, die von Module oder Module<T> erbt. Abhängigkeiten werden über Attribute deklariert, etwa [DependsOn<BuildModule>] auf einem Publish-Modul. Laut README berechnet das Framework aus diesen Deklarationen, was parallel laufen kann, und plant entsprechend; Entwickler orchestrieren parallele Jobs also nicht von Han ModularPipelines ist damit klar als write your pipelines in c# . | | modularpipelines.java | helpers for interacting with java build tools (maven, gradle). einzuordnen. Die README beschreibt den Zweck und die genannten Bausteine, sagt aber nicht automatisch etwas über jede Plattform, jede Lastsituation oder einen langfristigen Wartungsplan aus. Diese Grenze ist für die Einordnung wichtig: Aus einer Liste von Technologien wird kein Beleg für eine fertige Gesamtarchitektur.

Für die praktische Prüfung von thomhurst/ModularPipelines sollte der dokumentierte Einstieg mit genau den im README genannten Dateien, Klassen oder Befehlen nachvollzogen werden. Bei ModularPipelines sind im Abschnitt 1 die erzeugten Dateien, die sichtbare Ausgabe und mögliche Fehlermeldungen aussagekräftiger als allgemeine Kennzahlen. Falls die Quelle eine Version, einen Dienst oder eine Konfigurationsdatei nennt, gehört dieser konkrete Bezug in den Test. Nicht dokumentierte Eigenschaften bleiben offen, statt aus dem Repository-Namen abgeleitet zu werden.

Module als Arbeitseinheit

sh-Modul. Laut README berechnet das Framework aus diesen Deklarationen, was parallel laufen kann, und plant entsprechend; Entwickler orchestrieren parallele Jobs also nicht von Hand. Die Erkennung zyklischer Abhängigkeiten wird als eingebaute Funktion gelistet. Dass jede Arbeitseinheit in einer eigenen Klasse steckt, ist die architektonische Entscheidung, die das README hervorhebt, mit weniger Merge-Konflikten und isoliertem Testen als genannten Vorteilen. Module können ein typisiertes Ergebnis zurückgeben. Das README zeigt ein BuildModule, das ein BuildInfo-Objekt mit Version und Ausgabepfad zurückgibt, und ein PublishModule, das dieses Objekt mit context.GetModule<BuildModule>() abruft. Das README beschreibt das als sauberen Datenfluss ohne gemeinsamen veränderlichen Zustand. Ein Aufruf von GetModule für ein Modul, dessen Ergebnis nicht verfügbar ist, wirft eine Ausnahme mit Modulkontext, so das README. Der Ausnahmetyp und das Verhalten bei paralleler Ausführung werden im README nicht erläutert. Das Reposito ModularPipelines ist damit klar als write your pipelines in c# . | | modularpipelines.java | helpers for interacting with java build tools (maven, gradle). einzuordnen. Die README beschreibt den Zweck und die genannten Bausteine, sagt aber nicht automatisch etwas über jede Plattform, jede Lastsituation oder einen langfristigen Wartungsplan aus. Diese Grenze ist für die Einordnung wichtig: Aus einer Liste von Technologien wird kein Beleg für eine fertige Gesamtarchitektur.

Für die praktische Prüfung von thomhurst/ModularPipelines sollte der dokumentierte Einstieg mit genau den im README genannten Dateien, Klassen oder Befehlen nachvollzogen werden. Bei ModularPipelines sind im Abschnitt 2 die erzeugten Dateien, die sichtbare Ausgabe und mögliche Fehlermeldungen aussagekräftiger als allgemeine Kennzahlen. Falls die Quelle eine Version, einen Dienst oder eine Konfigurationsdatei nennt, gehört dieser konkrete Bezug in den Test. Nicht dokumentierte Eigenschaften bleiben offen, statt aus dem Repository-Namen abgeleitet zu werden.

Stark typisierte Daten zwischen Modulen

nicht verfügbar ist, wirft eine Ausnahme mit Modulkontext, so das README. Der Ausnahmetyp und das Verhalten bei paralleler Ausführung werden im README nicht erläutert. Das Repository enthält Roslyn-Analysen, die fehlende [DependsOn]-Attribute beim Aufruf von GetModule<T>(), zyklische Abhängigkeiten, nicht abgewartete Modulergebnisse und Console.Write-Aufrufe markieren, die das Logging-System verwenden sollten. Das README beschreibt außerdem vollständige Dependency Injection nach ASP.NET-Core-Mustern, automatische Verschleierung von Geheimnissen in Logs und IDE-Unterstützung wie Umbenennungs-Refactoring, das alle Verweise auf ein Modul aktualisiert. Das README nennt keine bestimmte IDE; es sagt, Pipeline-Code erhalte dieselbe Behandlung wie Anwendungscode. Der Schnellstart installiert das Vorlagenpaket mit dotnet new install ModularPipelines.Templates, erstellt ein Pipeline-Projekt mit dotnet new modularpipeline und führt es mit dotnet run aus. Das generierte Projekt enthält getrennte Restore-, Build-, Test- un ModularPipelines ist damit klar als write your pipelines in c# . | | modularpipelines.java | helpers for interacting with java build tools (maven, gradle). einzuordnen. Die README beschreibt den Zweck und die genannten Bausteine, sagt aber nicht automatisch etwas über jede Plattform, jede Lastsituation oder einen langfristigen Wartungsplan aus. Diese Grenze ist für die Einordnung wichtig: Aus einer Liste von Technologien wird kein Beleg für eine fertige Gesamtarchitektur.

Für die praktische Prüfung von thomhurst/ModularPipelines sollte der dokumentierte Einstieg mit genau den im README genannten Dateien, Klassen oder Befehlen nachvollzogen werden. Bei ModularPipelines sind im Abschnitt 3 die erzeugten Dateien, die sichtbare Ausgabe und mögliche Fehlermeldungen aussagekräftiger als allgemeine Kennzahlen. Falls die Quelle eine Version, einen Dienst oder eine Konfigurationsdatei nennt, gehört dieser konkrete Bezug in den Test. Nicht dokumentierte Eigenschaften bleiben offen, statt aus dem Repository-Namen abgeleitet zu werden.

Compile-Zeit-Prüfungen und der Entwickler-Workflow

pelines.Templates, erstellt ein Pipeline-Projekt mit dotnet new modularpipeline und führt es mit dotnet run aus. Das generierte Projekt enthält getrennte Restore-, Build-, Test- und Publish-Module mit expliziten Abhängigkeiten. Für ein bestehendes Projekt listet das README dotnet add package ModularPipelines und ModularPipelines.DotNet und zeigt dann eine Program.cs, die eine Pipeline mit Pipeline.CreateBuilder erstellt und ExecutePipelineAsync abwartet. Für ein vollständiges kopierfertiges Beispiel wird auf die Vorlagenquelle verwiesen. Die Integrationstabelle listet 40 Pakete mit stark typisierten Wrappern, darunter Docker, dotnet, git, Terraform, Kubernetes, Helm, Slack, Amazon Web Services und Azure. Eine separate Vergleichstabelle positioniert ModularPipelines gegenüber Cake und Nuke: beansprucht werden echtes C#, automatische Parallelisierung auf Basis von Abhängigkeiten, getrennte Modulklassen und Microsoft.Extensions.DI, während Cake als C#-DSL mit manueller Parallelisierung und Nuke als echtes C# mit ModularPipelines ist damit klar als write your pipelines in c# . | | modularpipelines.java | helpers for interacting with java build tools (maven, gradle). einzuordnen. Die README beschreibt den Zweck und die genannten Bausteine, sagt aber nicht automatisch etwas über jede Plattform, jede Lastsituation oder einen langfristigen Wartungsplan aus. Diese Grenze ist für die Einordnung wichtig: Aus einer Liste von Technologien wird kein Beleg für eine fertige Gesamtarchitektur.

Für die praktische Prüfung von thomhurst/ModularPipelines sollte der dokumentierte Einstieg mit genau den im README genannten Dateien, Klassen oder Befehlen nachvollzogen werden. Bei ModularPipelines sind im Abschnitt 4 die erzeugten Dateien, die sichtbare Ausgabe und mögliche Fehlermeldungen aussagekräftiger als allgemeine Kennzahlen. Falls die Quelle eine Version, einen Dienst oder eine Konfigurationsdatei nennt, gehört dieser konkrete Bezug in den Test. Nicht dokumentierte Eigenschaften bleiben offen, statt aus dem Repository-Namen abgeleitet zu werden.

Einrichtung über Vorlagen oder Paketverweise

arallelisierung auf Basis von Abhängigkeiten, getrennte Modulklassen und Microsoft.Extensions.DI, während Cake als C#-DSL mit manueller Parallelisierung und Nuke als echtes C# mit einer einzelnen Build-Klasse beschrieben wird. Das README liefert keine Benchmarks oder Drittvalidierung für diese Positionen. Die Repository-Metadaten weisen eine MIT-SPDX-Lizenz aus, aber die Lizenzdatei selbst lag in den geprüften Materialien nicht vor, sodass hier keine konkreten Gewährungsbedingungen zitiert werden können. Das README sagt, dass Nebenversionen Breaking Changes enthalten können und dass diese in den Release Notes dokumentiert werden. Das README beschreibt keine Sicherheitsgarantien, Support-Zusagen oder Gewährleistungsbedingungen. Die Repository-Metadaten listen 56 offene Issues; das README erläutert nicht, worum es in diesen Issues geht. ModularPipelines ist damit klar als write your pipelines in c# . | | modularpipelines.java | helpers for interacting with java build tools (maven, gradle). einzuordnen. Die README beschreibt den Zweck und die genannten Bausteine, sagt aber nicht automatisch etwas über jede Plattform, jede Lastsituation oder einen langfristigen Wartungsplan aus. Diese Grenze ist für die Einordnung wichtig: Aus einer Liste von Technologien wird kein Beleg für eine fertige Gesamtarchitektur.

Für die praktische Prüfung von thomhurst/ModularPipelines sollte der dokumentierte Einstieg mit genau den im README genannten Dateien, Klassen oder Befehlen nachvollzogen werden. Bei ModularPipelines sind im Abschnitt 5 die erzeugten Dateien, die sichtbare Ausgabe und mögliche Fehlermeldungen aussagekräftiger als allgemeine Kennzahlen. Falls die Quelle eine Version, einen Dienst oder eine Konfigurationsdatei nennt, gehört dieser konkrete Bezug in den Test. Nicht dokumentierte Eigenschaften bleiben offen, statt aus dem Repository-Namen abgeleitet zu werden.

Redaktionelles Fazit

ModularPipelines ersetzt YAML-Pipeline-Dateien durch C#-Modulklassen; automatische Parallelisierung, Roslyn-Analysen und lokales Debugging sind die dokumentierten Vorteile. Die Repository-Metadaten weisen eine MIT-Lizenz aus, der Lizenztext lag in den geprüften Materialien jedoch nicht vor, und das README weist darauf hin, dass Nebenversionen Breaking Changes enthalten können, die in den Release Notes dokumentiert werden.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen