远程触发构建后检查Jenkins作业状态

我有一个脚本,可以使用令牌远程触发Jenkins上的作业。这是我的脚本:

JENKINS_URL='http://jenkins.myserver.com/jenkins'

JOB_NAME='job/utilities/job/my_job'

JOB_TOKEN='my_token'

curl "${JENKINS_URL}/${JOB_NAME}/buildWithParameters?token=${JOB_TOKEN}"

* Hostname was NOT found in DNS cache

* Trying 10.5.187.225...

* Connected to jenkins.myserver.com (10.5.187.225) port 80 (#0)

> GET /jenkins/job/utilities/job/my_job/buildWithParameters?token=my_token HTTP/1.1

> User-Agent: curl/7.37.1

> Host: jenkins.myserver.com

> Accept: */*

>

< HTTP/1.1 201 Created

* Server nginx/1.6.2 is not blacklisted

< Server: nginx/1.6.2

< Date: Tue, 03 Feb 2015 23:40:47 GMT

< Content-Length: 0

< Location: http://jenkins.myserver.com/jenkins/queue/item/91/

< Connection: keep-alive

< Cache-Control: private

< Expires: Wed, 31 Dec 1969 16:00:00 PST

<

* Connection #0 to host jenkins.myserver.com left intact

我注意到它返回标题中的队列URL:http :

//jenkins.myserver.com/jenkins/queue/item/91。但我不知道该如何使用此返回URL。

1)我想知道是否有人知道如何检查我刚刚创建的工作的状态?

2)由于上述回应并未传回工作编号,因此我无法真正使用此api呼叫:

curl http://jenkins.myserver.com/jenkins/job/utilities/job/my_job/8/api/json

检查状态。因此,从上述响应中获取位置网址后,在哪里可以获取工作名称和工作编号?

谢谢

回答:

触发作业时,该作业将放入队列中。仅在开始运行时才创建实际的构建,并在那时获得该构建的编号。如果您的所有执行者都很忙,有时可能需要很长时间才能创建构建并开始运行。

触发作业时获取内部版本号的唯一方法是使用Jenkins CLI的“内部”命令。如果使用-w选项,则在构建开始之前该命令将不会返回,然后将显示“

Started build #N”。

您实际上不需要Java cli.jar,只需一个ssh客户端就足够了。参见https://wiki.jenkins-

ci.org/display/JENKINS/Jenkins+SSH

除此之外,没有已知的解决方案。您可能可以搜索整个构建,并找到在您完成工作时就触发的一个构建,但这是很多工作。

以上是 远程触发构建后检查Jenkins作业状态 的全部内容, 来源链接: utcz.com/qa/420040.html

回到顶部