Python 2.7 und Jenkins
Ich schreibe etwas Code in Python, der einen Check-in und eine Wartezeit / Abfrage für Jenkins Job durchführt, um abgeschlossen zu sein. Ich hätte gern ein paar Gedanken darüber, wie ich es erreichen kann.
Es wäre gut, wenn mir jemand mit Snippets aus der Jenkins Rest API oder aus dem Python Jenkins Modul helfen könnte
Sie können den letzten Build-Zeitstempel abfragen, um festzustellen, ob der Build abgeschlossen wurde. Vergleichen Sie es mit dem, was es vor dem Auslösen des Builds war, und sehen Sie, wann es sich ändert. Um den Zeitstempel zu erhalten, füge /lastBuild/buildTimestamp
zu deiner Job-URL hinzu
Tatsächlich fügen Sie in Ihrem Jenkins /lastBuild/api/
zu jedem Job hinzu und Sie werden viele API-Informationen sehen. Es hat sogar Python-API, aber ich kenne mich nicht damit, kann Ihnen nicht weiter helfen
Wenn Sie jedoch XML verwenden, können Sie lastBuild/api/xml?depth=0
hinzufügen, und innerhalb des XML-Objekts können Sie das Objekt <changeSet>
mit einer Liste von Revisionen / Commit-Meldungen sehen, die den Build ausgelöst haben
Wenn Sie wissen möchten, ob der Job abgeschlossen ist, reichen die Build-Nummer und der Build-Timestamp nicht aus.
Dies ist der Kern dessen, wie ich herausfinde, ob ein Job abgeschlossen ist, ich habe es in Ruby, aber nicht in Python, also könnte jemand das in echten Code updaten.
%Vor%ie. Ich fand, dass ich A) warten musste, bis der Build beginnt (neue Build-Nummer) und B) bis das Gebäude fertig ist (Gebäude ist falsch).
Ich habe das selbe Problem durchgespielt und das funktioniert für mich mit python3
und python-jenkins
.
Arbeiten mit Github Script: Link
Dieses Snippet startet den Build-Job und wartet, bis der Job erledigt ist.
Es ist einfach, den Job zu starten, aber wir brauchen eine Art Logik, um zu wissen, wann die Arbeit erledigt ist. Zuerst müssen wir darauf warten, dass die Job-ID angewendet wird, und dann können wir den Job nach Details abfragen:
%Vor%Tags und Links jenkins python-2.7