自 Jenkins 1.519 起,将构建排入队列会以 Location 中的 URL 响应,将您指向构建队列中的项目:
$ nc localhost 8666
POST /jenkins/job/morgRemote/buildWithParameters?jenkins_status=1&jenkins_sleep=20&token=morgRemote HTTP/1.1
Host: localhost:8666
HTTP/1.1 201 Created
Location: http://localhost:8666/jenkins/queue/item/39/
Content-Length: 0
Server: Jetty(winstone-2.8)
现在,如果您将api/json(或api/xml 等)添加到它的末尾(因此在此示例中为http://localhost:8666/jenkins/queue/item/39/api/json),那么您将获得一个包含给定构建ID 的文档工作。对于 json,检索到的对象具有 executable 属性,而后者又具有 number 和 url 属性。 number 是给定作业的构建 ID(此处为 35),url 是 jenkins 构建页面 url。
{
"actions" : [
{
"parameters" : [
{
"name" : "jenkins_status",
"value" : "1"
},
{
"name" : "jenkins_sleep",
"value" : "20"
}
]
},
{
"causes" : [
{
"shortDescription" : "Started by remote host 127.0.0.1",
"addr" : "127.0.0.1",
"note" : null
}
]
}
],
"blocked" : false,
"buildable" : false,
"id" : 39,
"inQueueSince" : 1423993879845,
"params" : "\njenkins_status=1\njenkins_sleep=20",
"stuck" : false,
"task" : {
"name" : "morgRemote",
"url" : "http://localhost:8666/jenkins/job/morgRemote/",
"color" : "red"
},
"url" : "queue/item/39/",
"why" : null,
"cancelled" : false,
"executable" : {
"number" : 35,
"url" : "http://localhost:8666/jenkins/job/morgRemote/35/"
}
}
注意两件事:
- 构建队列中的非活动项目会在几分钟后被垃圾回收,因此您应该尽快检索构建 ID
- 默认情况下,将项目添加到队列直到获得构建 ID 之间需要几秒钟。在此期间,
executable 和 canceled 属性将丢失,why 将不为空。您可以通过修改“安静期”设置或 jenkins 全局配置在作业配置的“高级项目选项”中更改此行为。
:
...
"url" : "queue/item/39/",
"why" : "In the quiet period. Expires in 2.4 sec",
"timestamp" : 1423993879845
}