das Unternehmen, in dem ich arbeite ist jenkins 2,71, insbesondere der Pipeline und blaue Ozean Plugins zu bewerten. Wir haben auch GoCD getestet und wir benötigen, wie in GoCD, eine Möglichkeit für eine Pipeline automatisch die Artefakte von 2 anderen Pipelines zu holen (wobei das letzte erfolgreiche Ergebnis von jedem von ihnen), hier unser Fall.Pipeline zu verwenden Artefakte aus zwei Projekten, die von den gleichen git branch Namen verbunden
Wir haben diese ersten Pipelines (Build & Lauf-Tests), die zwei Projekte reflektieren:
- Frontend, ~ 15 Minuten
- Backend, ~ 10 Minuten
Ich erstellte eine Pipeline namens konfigurieren (~ 1 Minute), mit z ein Parameter namens Kundenname, der Backend- und Frontend-Dateien aufnimmt und zusammenfügt, dann spezifische kundenspezifische Konfigurationen und Anpassungen anwendet und einsetzbare Artefakte erzeugt. Anstelle von "Kundenname" könnte ich diesen Job auch parallelisieren, um alle Artefakte für jeden Kunden auf einmal in verschiedenen Verzeichnissen zu erstellen.
Die nächste Pipeline wäre, sie auf verschiedenen Testservern für jeden Kunden getrennt bereitzustellen. Dies könnte auch Teil derselben configure Pipeline sein, müssen wir noch sehen, wie Dinge zusammen in jenkins ...
Idealerweise muss ich configure Pipeline automatisch ausgelöst werden (oder auch auf Anfrage) Nach jedem Frontend oder Backend-Erfolg und als Eingabe die letzten erfolgreichen Artefakte aus diesen 2 Pipelines nehmen, aber nicht nur den letzten erfolgreichen Build, benötigen wir als Abhängigkeit den git-Zweignamen.
z. wir haben:
Backend-Filialen:
- Master
- release/2017,2
Frontend Braches:
- Master
- release/2017,2
In der Pipeline-Editor, fand ich eine Build- Option Trigger und es wie folgt festgelegt: Erstellen Sie nach anderen Projekten>Projekte gebaut werden zu sehen: Frontend, Backend> Überprüfen -Trigger nur, wenn Build stabil ist oder besser in meiner Testumgebung voller Fehler Trigger auch wenn der Build instabil ist.
weitere Suche, fand ich Copy Artifact Plugin
Aber jetzt ist die große Frage, , wie die letzten erfolgreichen Artefakte aus diesen Pipelines mit dem gleichen git branch Namen holen?
Weil wir z.B. ein Backend-Build von "release/2017.2" mit Frontend "master", muss als der letzte erfolgreiche Build die gleiche Beziehung oder den gleichen Parameter finden, oder wie auch immer man es nennen möchte, in unserem Fall ist die Assoziation der Name des Git-Zweigs.
Ist es möglich, dies zu erreichen? Wenn ja, wie?
Das Kopie-Artefakt-Plugin scheint in einem Freestyle-Projekt zu funktionieren. Würde es in einer Pipeline funktionieren? Das ist auch ein Anliegen ...
Dank
Ja, das kann gemacht werden. Ich werde versuchen, eine ausführlichere Antwort zu geben, wenn ich mehr Zeit habe, aber werfen Sie einen Blick auf die 'copyArtifact'-Funktion. Außerdem gibt es einen Pipelinesyntax-Link in der linken Navigationsleiste, wenn Sie sich in einem Pipeline-Projekt befinden (Sie müssen vielleicht schon auf der Konfigurationsseite sein, ich kann mich nicht erinnern), die Details beschreibt, wie man viele dieser Arten macht von Sachen. – Kdawg