2016-07-22 20 views
5

Wir haben einen Jenkins-Job, der Builds mit bestimmten Parametern ausführt. Zwei dieser Parameter sind für mich wichtig: der Computer, auf dem der Build bereitgestellt wird, und die Versionsnummer des bereitgestellten Pakets.So finden und Abfragen eines bestimmten Builds in Jenkins mithilfe der Python Jenkins-API

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/

Hier ist eine Probe von json Ausgang der URL:

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/api/json

{"actions":[{"parameters":[{"name":"lab_name","value":"labA"},{"name":"version_no","value":"1.1"}]} 

die Jenkins REST-API oder Python Jenkins wrapper Wie würde ich nach dem suchen? Job, wenn ich die folder_level1 kenne und den Labnamen einem Job in folder_level3 zuordnen möchte, um die Version von dieser URL zu erhalten?

Antwort

4

Verwenden Sie die/api/xml-Format:

https://jenkinsurl/job/folder_level1/api/xml 

die den action XML-Knoten zurückgibt, die über XPath abgefragt werden können:

von

Nehmen Sie den passenden Namen Dort suchen Sie nach den betreffenden Daten:

  • builtOn - die Maschine, die den Bau auf
  • Nummer bereitgestellt wird - die Versionsnummer des Pakets, das

Verwendung einer XPath für jeden bereitgestellt wird, zusammen mit einem Wrapper Knoten für die Gruppierung, wie beispiels wie die folgenden für builtOn:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::builtOn&wrapper=builtOn_results 

und eine andere für die Version:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::number&wrapper=version_results 
Referenzen 0

+0

es gelöst unter Verwendung von eine Version Ihrer Lösung, aber ich habe mich nicht daran erinnert, die Antwort früher zu posten. Vielen Dank! – shanwar