Wir bauen in Jenkins eine Continuous-Delivery-Pipeline auf, die das Build-Pipeline-Plugin verwendet.
Unsere Bereitstellungsschritte verwenden ein proprietäres Bereitstellungstool (ausgelöst durch eine HTTP-Anfrage von jenkins), aber wir müssen einen zusätzlichen Jenkins-Schritt für Akzeptanztests für das dann bereitgestellte Projekt haben. Daher muss unser Bereitstellungstool den letzten Pipelineschritt auslösen.
Das jenkins-Setup dafür ist offensichtlich:
Für einen manuell ausgelösten Downstream-Build-Schritt: Einen Build-Schritt hinzufügen Das wird auf einen manuellen Trigger warten:
- Aktivieren Sie das Kontrollkästchen Pipeline-Plugin erstellen, manuell ausführbares Projekt ausführen
- Geben Sie die Namen der Downstream-Projekte im Downstream ein Feld "Projektnamen" (n.b. Mehrere Projekte können mit Komma wie "abc, def" angegeben werden.)
Quelle: Pipeline-Plugin erstellen
Das Problem ist: Ich kann keine Möglichkeit finden, diesen nachgeschalteten Build über eine URL auszulösen.
Tatsächlich würde ich die URL im Deploy-Job benötigen, damit ich sie als Callback-URL an das Bereitstellungstool senden kann. Kann jemand helfen?
Wenn ich es richtig verstanden habe, möchten Sie die Remote-Access-API verwenden, die meines Wissens nach nicht zwischen allgemeinem Projekt oder Pipeline-API unterscheidet. Schau mal hier:
Einreichen von Jobs Jobs ohne Parameter Sie müssen lediglich einen HTTP-POST unter JENKINS_URL / job / JOBNAME / build? Token = TOKEN ausführen, wobei TOKEN in der Jobkonfiguration eingerichtet wird.
Wie oben von @rafal S do angegeben lese eine Datei, die Namen von Projekten hat, für die ein Build-Job ausgelöst werden soll. Locke HTTP POST auf JENKINS_URL / job / $ {JOBNAME aus der Datei} / build? token = TOKEN innerhalb einer for-Schleife, wo for loop list hat aller Projektnamen aus der Datei, die Sie gelesen haben
Tags und Links jenkins continuous-delivery build-pipeline-plugin