Jenkins ver。 1.532.2
可能与https://issues.jenkins-ci.org/browse/JENKINS-18407
有关当我去工作并把#34; api"最后我得到以下文字
要以编程方式安排新版本,请发布到此URL。如果 build有参数,发布到此URL并提供参数 表格数据。无论哪种方式,成功的排队将导致201 带有位置HTTP标头的状态代码,指向项目的URL 队列。通过轮询队列项的api / xml子URL,您可以 跟踪排队任务的状态。通常,任务将进行 通过一些状态转换,然后最终它变成了 取消(查找"取消"布尔属性),或获取 执行(查找"可执行文件"通常指向的属性 AbstractBuild对象。)
所以我有两个带参数的作业和一个没有参数的作业。当我触发没有参数的作业时,我得到了如上所述的行为,即状态代码为201,其中包含"位置"标题告诉我队列项目。
然而,对于具有参数的作业,似乎不是这种情况。完成后,我得到一个200的状态代码(这意味着它没有排队)但是我可以看到在UI中工作被触发了。有没有人在其他任何地方遇到过同样的问题?
为什么位置标题很重要? "位置"标题是最重要的重要信息。所以Jenkins告诉我OKAY而不告诉我触发的内部版本号(或队列项目编号)是什么。在某些情况下可以工作的一个假设是触发构建并遵循" latestBuild"但它不会在并发构建的环境中工作。
答案 0 :(得分:0)
我意识到这个问题已经过时但我遇到了同样的问题。我还收到状态代码200.但是如果查看返回的数据(我的数据是json格式),你会发现一个queueItem部分 -
通过查询本节中给出的附加了api后缀http://myjenkins/queue/item/4/api/xml/
的URL,我得到了我想要的信息。首次查询api时,它可能不包含您需要的信息,但通过轮询此URL,一旦构建开始,将有一个可执行部分,其中包含新创建的构建的URL -
值得指出的是,似乎队列url的生命周期有限,之后它不可用(如果不再在队列中) - 我不确定这是多长时间,或者它是否可配置但似乎是我约5分钟。希望这会有所帮助。