繁体   English   中英

如何为远程API在Jenkins中触发的构建获取正确的构建号

[英]How to get the right build number for a build triggered in Jenkins by remote API

我正在使用对http:// jenkins:8080 / view / projectAlpha / job / deploy_job_with_params / build的 Python请求在Jenkins中使用参数触发构建,但是我没有任何队列或构建号来标识我的构建。

根据詹金斯的/ api页面获取上述网址:

“要以编程方式安排新的构建,请发布到此URL(表示/ build URL-RaamEEIL)。如果构建具有参数,请发布到此URL(表示/ buildWithParameters URL-RaamEEIL),并将参数作为表单数据提供。这样,成功的排队将导致201状态代码的位置HTTP标头指向队列中该项的URL。”

但是,不是在部署时返回的位置标头中获取队列的URL(例如http:// jenkins:8080 / queue / item / 21038 / api / json ),而是获得URL http:// jenkins:8080 / view / projectAlpha / job / deploy_job_with_params /所以基本上我没有任何队列号或内部版本号

我阅读了有关解决方法的建议,以发送带有一些ID的附加参数,该参数可用于验证最新的版本是我的版本,或用于搜索整个版本列表,直到找到正确的版本。

谢谢。

好吧,事实证明我把事情搞混了。 这似乎发生在许多其他人身上,所以这里有一些信息。

/ build url-返回位置=作业的url。 在您的构建中不包含信息

/ buildWithParameters url-返回location =构建队列项的url

根据丹尼尔·贝克(Daniel Beck)对https://issues.jenkins-ci.org/browse/JENKINS-30317的评论-

(通过“ This”(作者)表示/ build url)

那就是问题所在。 这实际上不是API。 如我之前所写,所记录的API使用/ buildWithParameters进行参数化构建。 假装是网络浏览器。

...因为网络浏览器将被重定向到空白的404错误页面。 同样,您实际上并没有在这里使用API​​,而是在假装是网络浏览器。

因此,尽管API页面指出您可以请求/ build URL,但如果要获取构建的队列项URL作为“ location”标头,则必须请求/ buildWithParameters URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM