Komplexe und lange Single-Job-Jenkins-Job-Pipeline-Builds: gibt es schon?

TL; DR

Macht es Sinn, einen zu habenSingl Jenking Job Pipeline-Job für eine vollständige, lang laufende Bereitstellungs- / "Build" -Kette in den kostenlosen Jenkins, vorausgesetzt, dass resumablecheckpoints sind nicht verfügbar?

Auftak

Ich schaue auf die aktuelle Inkarnation von Jenkins ' the open / freePipeline Bundle.

Ich werde feststellen, dass ich denke, dass, was Sie für @ bekommkostenlo hier ist ganz einfach erstaunlich, da die meisten Sachen (Workflow-Jobs selbst, stage-view, ...) war nur ein Teil des kommerziellen Unternehmensbündels von CloudBees vor ein oder zwei Jahren.

Einzel- und Mehrfachjobs

Es scheint mir auch, dass angesichts derstash ing -Fähigkeiten und Multi-Node-Fähigkeiten des Jenkins Pipleine, es ist - und auch als solches beworben - möglich, ein @ zu erstellvol und vollständige Build / Test / Bundle / Deploy-Kette inone single Jenkins Job.

Dies steht im Gegensatz zum "historical" (?) Pipeline-Plugin erstellenit @ können Sie "Stufen" auf mehrere Jenkins-Jobs aufteilen. Das Orchestrieren dieser Jobs war schon immer mühsam, ganz zu schweigen von der Weitergabe von Artefakten zwischen den Jobs und der Kontrolle, wie sie auf verschiedenen Knoten ausgeführt werden.

Schritt wiederholen / fortsetzen

Außer das, was dutu get from the Old Build Pipeline-Plug-in kann eine "Phase" neu starten (wenn sie fehlschlägt) - dies funktioniert, da eine "Phase" einfach ein Jenkins-Job-Lauf ist, den Sie wiederholen können (und der auch alle Downstreams ausführt) Zeug)

Wenn Wiederholen / Fortsetzen entscheidend ist

Die C ++ Builds unseres Projekts haben eine Kompilierungsdauer von Stunden, automatisierte Tests, die länger dauern, und schließlich die Erstellung von Paketen und Setups, die ebenfalls nicht in wenigen Minuten erledigt sind.

Wenn ich einen "Pipleine-Build" durchführe und die Setup-Erstellung am Ende aufgrund von Problemen mit der Setup-Erstellung fehlschlägt, tue ichnich möchte das Projekt neu erstellen und die Komponententests erneut ausführen. Ich möchte die Setup-Skripte reparieren und die Setup-Erstellung wiederholen, die diesen Lauf (hoffentlich) mit Erfolg abschließen würde. ... oder wenn einige automatisierte Tests fehlschlagen, z. B. aus Gründen der vermuteten Build-Umgebung, möchte ich die Build-Umgebung reparieren und meine Pipeline erneut ausführenvo den fehlgeschlagenen Test weiterleiten, ohne zuerst eine mehrstündige Neukompilierung durchzuführen.

Kontrollpunk

Es kommt vor, dass das New Jenkins Job Pipeline-Bundle does haben die Fähigkeit, von einem @ zu beginncheckpoint. Außer: Es ist Teil des Enterprise Bundles, was bedeutet, dass es nicht kostenlos ist. (Ich werde feststellen, dass ich @ sein würfei Mit Geld an CloudBees geben, aber ich binnich fein mit dem Verschieben eines Use-as-many-Nodes-as-you-like-und-also-you-like-to-just-do-Testruns auf eine eingeschränkte lizenzierte Software, wo ich habe Um die Anzahl der Knoten zu verfolgen, stellen Sie sicher, dass die Testumgebungen auch lizenzrechtlich eingerichtet werden könne

Die Frage: Kein Checkpoint - bedeutet noch Multijob?

So, da für mich die New Jenkins Job Pipeline does haben die Fähigkeit, von einem fehlgeschlagenen Schritt fortzusetzen, es scheint Ich bin wieder auf dem ersten Platz und muss meine Sachen, die länger laufen, sowieso in mehrere Jobs aufteilen.

Dies wirft dann die Frage auf, ob das Jenkins Job Pipleine wirklich das beste Tool für den Job ist - wenn ich mehrere Jobs orchestrieren muss und dies auf der Erstellungsseite rationalisieren und automatisieren möchte, könnte ich auch das @ verwendeJob DSL Plugin um all diese Jobs von einem Punkt aus zu verwalten - und dann ist die Frage, ob Jobs mit "freiem Stil" den Job nicht genauso gut machen.

Auf der anderen Seite könnte mir hier etwas fehlen und es gibt einen anderen guten Single Job Ansatz dafür?

Ich werde das @ beachtReplay Option für einen Pipeline-Lauf sieht vielversprechend aus, wenn auch etwas grob ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage