我正在使用http://jenkins:8080/view/projectAlpha/job/deploy_job_with_params/build的Python请求在Jenkins中触发带有参数的构建,但是我没有任何队列或构建编号来标识我的构建。
根据上述网址的Jenkins的/ api页面:
“要以编程方式安排新的构建,请发布到此URL(表示/ build URL-RaamEEIL)。如果 build具有参数,发布到此URL(表示/ buildWithParameters url-RaamEEIL),并提供以下参数: 表格数据。无论哪种方式,成功排队都会导致201 带有位置HTTP标头的状态代码,该标头指向 队列。”
但是,我没有获得队列http://jenkins:8080/queue/item/21038/api/json的URL,而是获得了在部署该配置时返回的位置标头中的队列的URL(例如http://jenkins:8080/view/projectAlpha/job/deploy_job_with_params/),因此基本上我没有任何队列号或内部编号
我阅读了一个解决方法的建议,以发送带有一些ID的附加参数,该参数可用于验证最新的版本是我的版本,或用于搜索整个版本列表,直到找到正确的版本。
谢谢。
答案 0 :(得分:0)
嗯,事实证明我把事情搞混了。这似乎发生在许多其他人身上,所以这里有一些信息。
/ build url-返回 location =作业的URL。在您的版本中不包含信息
/ buildWithParameters网址-返回 location =您的生成队列项的网址
根据丹尼尔·贝克(Daniel Beck)对https://issues.jenkins-ci.org/browse/JENKINS-30317-
的评论(通过“此”,作者是指/ build网址)
就是这个问题。这实际上不是API。就像我以前写的 所记录的API使用/ buildWithParameters进行参数化 建立。这是假装为网络浏览器。
...因为网络浏览器将被重定向 到空白的404错误页面。同样,您实际上并没有使用API 在这里,您假装是网络浏览器。
因此,尽管API页面指出您可以请求/ build URL,但如果要获取构建的队列项URL作为“ location”标头,则必须请求/ buildWithParameters URL。