[英]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.