如果您绝对需要使用 Jenkins Rest api 调用来查询包含特定构建参数的特定构建号,请使用以下查询:
http://localhost:8080/job/MyJenkinsJob/api/xml?tree=builds[actions[parameters[value]],number]&xpath=//build[action[parameter[value="MyParameterValue"]]]/number
这应该返回类似:
<number>49</number>
如果您想了解有关 XPath 过滤的更多信息,请参阅一些示例here https://msdn.microsoft.com/en-us/library/ms256086%28v=vs.110%29.aspx.
替代方法
要回答您最初的问题“我这样做的唯一原因是詹金斯在我从脚本触发时不返回内部版本号”
你可以做的是使用“-i”参数运行curl。当您执行此操作时,您应该会看到返回的队列项目 id #。
例如:
curl -X POST -i http//localhost:8080/job/test123/buildWithParameters?aaa=ABC
Returns:
HTTP/1.1 201 已创建
日期:2016 年 8 月 17 日星期三 03:15:28 GMT
X-内容类型选项:nosniff
地点:http://localhost:8080/queue/item/44/ http://localhost:8080/queue/item/44/
内容长度:0
服务器:Jetty(9.2.z-SNAPSHOT)
有了这个队列 ID,您可以通过以下方式获取内部版本号:
http://localhost:8080/queue/item/44/api/xml
它应该返回一个包含您要查找的号码的 XML。
例如:
<leftItem>
...
<executable _class="hudson.model.FreeStyleBuild">
<number>11</number>
<url>http://localhost:8080/job/test123/11/</url>
</executable>
</leftItem>