我需要获取我开始使用 REST API(使用 python)的 jenkins 作业的 ID。从 Jenkins 1.529 开始,似乎可以使用 API abd 触发构建,以返回指向队列中作业的 url。
詹金斯的文档:
执行构建
要以编程方式安排新构建,请发布到此 URL。如果构建有参数,则发布到此 URL 并将参数作为表单数据提供。无论哪种方式,成功排队都会导致 201 状态代码,其中 Location HTTP 标头指向队列中项目的 URL。通过轮询队列项的 api/xml 子 URL,可以跟踪队列任务的状态。通常,任务将经历一些状态转换,然后最终被取消(查找“cancelled”布尔属性)或被执行(查找通常指向 AbstractBuild 对象的“可执行”属性。)
但我没有成功获得有用的网址。
我试过了:
import requests
requestKwargs ={'headers': {'Content-Type': 'application/x-www-form-urlencoded'}, 'data': {'json': '{"parameter": []}'}, 'verify': True}
url=server+'job/test/build/'
req=requests.post(url, **requestKwargs)
print 'status',req.status_code
location=req.headers['location']
print 'location is:',location
这段代码的输出是:
状态 201
location is: http://SERVER_PORT/job/test/build/
如何使用“位置”的信息来跟踪队列任务的状态?
谢谢。