在构建机器人 1.2.0 中取消构建请求



为了使用buildbot触发不同的操作(启动,检查,停止(并根据事件的状态取消构建请求(实现线程。基于文件的事件接口(我们使用 buildbot.plugins.util.BuilderConfig 的 nextBuild 属性(http://docs.buildbot.net/latest/manual/cfg-builders.html(:

BuilderConfig(...,
nextBuild=partial(handle_property_action_for_next_build, event))

因此,根据操作(开始,停止,检查(和事件的状态,我们将使用cancelBuildRequest取消所有请求:

def handle_property_action_for_next_build(event, _, requests):
action = requests[0].properties.getProperty("action")
if action == "start":
if event.is_set():
for request in requests:
request.cancelBuildRequest()
return None
else:
event.set()

但是 cancelBuildRequest 方法在前段时间被删除了:https://github.com/buildbot/buildbot/commit/95b90d7f0881dd4891199b16be9af2242729081b#diff-e55fd5266f5206f358b6da23011e41f0

所以问题是我将如何使用构建机器人 1.2.0 取消构建请求?

它不需要在 nextBuild 属性中,而是在我有的某个地方:

  1. 访问当前操作
  2. 可以传递自定义事件
  3. 可以取消构建请求

使用数据 api:

request.master.data.control("cancel", ("buildrequests", request.id))

最新更新