Jenkins/Hudson - Wie laufen mehrere jobs parallel, die mehr als 1 Ebene tief?
Ich versuche, das folgenden workflow läuft in Jenkins, parallel. Also zum Beispiel A-und B-laufen zur gleichen Zeit. Sobald Eine beendet ist führen Sie A2 und A3 in der gleichen Zeit, etc...
Scheint es wie ein ziemlich üblicher Fall, aber die meisten plugins, die ich habe versucht, nicht mehr als 1 Ebene tief, was der Fall ist, mit der Eine Zweig unten. Join-plug-in scheint nicht hilfreich hier.
Ich Lesen Sie über die Verwendung der Förderung plugin aber ich bin ein wenig verwirrt, was fingerprint/Artefakte zu archivieren, um diese Arbeit zu machen.
Keine Ahnung, wie man diese einfache build-pipeline zu arbeiten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als jgritty darauf hingewiesen, man könne die Bauen-flow-plugin. Um die Art der parallelen Ausführung, die Sie wollen, dass Sie laufen konnte, etwas, das äquivalent zu den folgenden build-flow script:
In diesem Skript die erste
parallel
block kümmert sich um die A-und B-Zweige. Sobald in einer Branche, jedes build ist fortlaufend, bis Sie fügen Sie mehrparallel
Blöcke.Gibt es eine Lösung, die funktioniert Super: die Multi-Job-plugin. Es tut genau, was Sie wollen. Mit Der MultiJob-Plugin teilen Sie Ihre Arbeit in Phasen unterteilt, die Seriell ausgeführt. Innerhalb jeder phase werden die jobs parallel laufen.
Einfachheit halber gehe ich davon aus, dass A und B sind "Zusammenstellung" jobs, die Sie ausführen möchten, in parallel. Weiter übernehmen kann es Ein a-Test (und seine Kinder) und B-Test, die sind auch separate jobs.
Erstellen Sie die multijob wie folgt: Neuer Eintrag -> Multijob Projekt
In das Projekt, das Sie erstellen zwei Phasen (Add build step "MultiJob-Phase"). Das erste wird sein, zu KOMPILIEREN und Sie würde "Phase hinzufügen" Job "A" und "B".
Können Sie ändern Sie die Optionen für das KOMPILIEREN phase Arbeitsplätze, so dass, wenn einer der beiden ausfällt, ist die gesamte phase abgebrochen (der Standard), oder lassen Sie den job fortsetzen.
Als Nächstes fügen Sie ein weiteres MultiJob-Phase Build Schritt für TEST-und "A-Test" und "B-Test" zu. Denken Sie daran, dass A -, B -, A -, Test -, und B-Test sind alle getrennte Arbeitsplätze können auch einzeln ausgeführt werden, falls gewünscht.
Das ist es. Wenn der Auftrag läuft, wird es Verweise auf die untergeordneten Aufträge, so dass Sie sehen können, was passiert mit dem sub-jobs.
Ich glaube diese kann das plugin Sie benötigen.
Ich hatte ein ähnliches problem, und die Gefördert Builds Plugin war eine bessere Lösung für mich als die Build-Flow-Plugin, dass andere haben darauf hingewiesen.
Einen build promotion-job Hinzugefügt werden können, um eine bestehende Aufgabe durch ankreuzen der check-box "zu Fördern, baut, wenn...". Sie können konfigurieren, dass die Förderung auch auftreten, wenn die benannten downstream-Projekte werden abgeschlossen durch die Prüfung ", Wenn die folgenden downstream-Projekte erfolgreich erstellen" unter Kriterien (vorausgesetzt, dass alle weiteren Projekte sind im Zusammenhang von Fingerabdrücken).
Zur Förderung Schritt können Sie trigger-E-Mails Zusammenfassung der Ergebnisse oder der Auslöser einer weiter stromabwärts job.
In diesem Fall, Sie können hinzufügen, die promotion-job an den Trigger-Projekte und richten sich an Projekten A2, A3 und B1 erfolgreich abgeschlossen.
Erstellen verwenden Andere Projekte in den Post-Build-Abschnitt.
Sage zu starten, A2,A3 auf die Fertigstellung der A1.
Erhöhung der Zahl der Vollzieher in Hudson Verwalten --> Konfigurieren des Systems, um die entsprechende Anzahl.
Wir haben ein set-up ähnlich zu dem, was 'Steven der Leicht Amüsiert' vorgeschlagen. Außer, dass ich das "A" und "B" - Pfade (als Ihre eigenen Multi-Job-stack und anderen Multi-Job einrichten, wie die "Trigger". Wo beide das "A" und "B" - Stapel parallel laufen. Auf diese Weise Sie nicht direkt einer engen Abhängigkeit zueinander. Sie können auch insgesamt Ihre Ergebnisse, je nachdem, ob eine/beide stacks scheitern.
Sie können auch festlegen, dass der "Auslöser" zum erfassen von Parametern und pass dann auf beide Stapel.