Ich habe baut die gescheiterte einige Arbeit zu tun Beispiel aus unserem Jenkins auf Schaben und dann Ausfällen zusammenpassen versuchen, einschließlich der Build-Failure kategorisiert diejenigen Analyzer, und Ich kann dir sagen, dass es ein bisschen frustrierend ist.
Wir haben drei Arten von Builds (FreeStyle, Matrix und Workflow) und jeder von ihnen berichtet die Dinge anders. Tims Kommentar Kampf mit depth=3
auf der API funktioniert, aber ich habe mit den spezifischeren:
https://HOST_NAME/job/PROJECT_NAME/api/json?pretty=true&tree=allBuilds[number,timestamp,url,duration,result,runs[url,number],actions[foundFailureCauses[*]]]
Der tree
Teil besser sicher macht Sie alle Teile erhalten Sie wollen (manchmal die depth
nicht bekommen, was dies tut), sowie Dinge auszuschließen, die Sie nicht tun. Dies funktioniert für FreeStyle-Builds und Workflow-Builds, die mit einem einzelnen Knoten terminieren.
Für Matrix-Builds müssen Sie dann den Links in runs
folgen, aber Sie müssen die URL mampfen, die es Ihnen gibt (es setzt die Build-Nummer an der falschen Stelle). Dann rufen Sie die gleiche API auf dem verknüpften Build auf, um diesen zu extrahieren.
Für Workflow-Builds gibt es nervige Nachrichten, gute Nachrichten, schlechte Nachrichten und, soweit ich weiß, noch schlimmere Nachrichten. Der nervige Teil ist, dass Sie sehen müssen, dass dies ein Workflow Build ist (schauen Sie sich die _class
Eigenschaft an, die Sie bekommen haben, ohne danach zu fragen), und dann schauen Sie sich die Build URL an, aber ersetzen wfapi
für api/json
(und vergessen den Rest der Parameter). Dann können Sie den json
Links folgen, die Sie zurück erhalten, um die Fehler zu lokalisieren. Die gute Nachricht ist, dass Sie dadurch eine viel bessere Verbindung zu dem Fehler erhalten, einschließlich intelligenter Nachrichten (irgendwann).
Die schlechte Nachricht ist, dass ich nicht sicher bin, ob der Build Failure Analyzer für diese richtig funktioniert, oder weiß, wie man es im richtigen Build-Schritt markiert.
Die noch schlimmere Nachricht ist, dass für viele Builds auf meinem Server diese API überhaupt nicht zu funktionieren scheint. Dies ist obwohl ich ähnliche Informationen über die BlueOcean UI sehen kann. Ich untersuche jetzt, dass ich das jetzt herunterfahre.
Sorry, dass dies keine einfache Antwort ist, aber das ist der Stand der Dinge, soweit ich das an dieser Stelle feststellen kann.
Ich habe den BFA-Stecker installiert und das Fehlermuster konfiguriert. Aber können Sie mir bitte zeigen, wie man diesen Fehler im jenkins api json Format bekommt. – user987709
Hallo, du brauchst so etwas wie https: // localhost/jenkins/job/ShellTest/1/api/json? Pretty = true & depth = 3, depth = 3 wird dir helfen, die Fehlerursachen bezogenen Informationen zu zeigen, wäre ein Beispiel "foundFailureCauses": [{ "Kategorien": [ "Pom" ], "description": "scm Verbindung oder Developer muss angegeben werden", "id": „28953504-e351-4dff-9c9b-1143325d6c7a ", " Name ":" Pom - fehlende SCM-Informationen " }, dann können Sie die Antwort einfach mit einem beliebigen JSON-Parser syntaktisch analysieren. – Tim