繁体   English   中英

如何使用 Python-Jenkins 随时获取多个构建状态?

[英]How to use Python-Jenkins to get multiple build status at any time?

我对 Python-Jenkins 很陌生。 我浏览了API 页面,但没有找到答案。

我在 Jenkins 创建了一份工作,比如 MyJob。 我想用 python 来

  1. 为 MyJob 添加多个构建,这意味着执行server.build_job('MyJob', params)多次。
  2. 随时获取创建的构建状态之一(已完成或仍在等待),这意味着我随时都想要get_build_info('MyJob', build_id)['result']

更准确地说,我正在实现 web 服务器,有请求要求创建新构建(第 1 点)或查询已创建构建的状态(第 2 点)。

在 API 中, build_id = server.get_job_info('MyJob')['nextBuildNumber']可以为我提供下一个版本号,但我无法随时使用server.get_build_info('MyJob', build_id)获取此版本的信息,因为如果一个构建在等待队列中,那么我们不能使用get_build_info来获取它的状态,它会抛出异常。

我不明白,我不可能知道一个构建任务何时会被执行,所以当我进行查询时,一个构建可以是任何一个(在队列中等待 | 执行 | 完成),那我怎么能获得那些构建的状态? 其实我完全不明白为什么get_build_info()不支持构建任务在等待队列中的情况。

您需要使用get_queue_item获取排队构建

我猜想 API 在开始运行之前不会将构建视为构建。

您可以尝试获取构建信息,如果它引发错误(因为它在队列中)然后将其从队列中拉出?

可悲的是,这似乎不是文档记录最好的模块,因此每次调用返回的内容有点神秘,无需经过反复试验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM