Warte bis ein Jenkins Build fertig ist

8

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.

  1. Python-Funktion zum Erstellen eines Check-Ins in Perforce- & gt; Dies kann leicht gemacht werden, da P4 CLI
  2. hat
  3. Python-Code, um zu erkennen, wann ein Build ausgelöst wurde - & gt; Ich habe die Änderungsliste und die Jobnummer. Wie kann ich die Jenkins-API für das Build-Protokoll abfragen, um zu prüfen, ob es die entsprechenden Änderungslisten enthält? Die Ausgabe dieses Schritts ist eine Build-URL, die den Job ausführt
  4. Wie warte ich, bis der Job von jenkins abgeschlossen ist?

Es wäre gut, wenn mir jemand mit Snippets aus der Jenkins Rest API oder aus dem Python Jenkins Modul helfen könnte

    
Kannan Ekanath 08.03.2013, 15:21
quelle

4 Antworten

4

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

    
Slav 11.03.2013, 13:59
quelle
6

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).

    
KCD 27.08.2013 00:12
quelle
0

Ich habe das selbe Problem durchgespielt und das funktioniert für mich mit python3 und python-jenkins .

%Vor%

Arbeiten mit Github Script: Link

    
Chandan Nayak 27.07.2015 11:46
quelle
0

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%     
z10n0101 31.10.2017 11:46
quelle

Tags und Links