在 buildbot 1.2.0 中取消构建请求
Cancel build request in buildbot 1.2.0
为了使用 buildbot 触发不同的操作(启动、检查、停止)并根据事件状态取消构建请求(基于文件实现 threading.Event 接口),我们使用了nextBuild 属性 of buildbot.plugins.util.BuilderConfig (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
所以问题是我如何取消使用 buildbot 1.2.0 的构建请求?
它不需要在 nextBuild 属性中,但在我有的地方:
- 访问当前操作
- 可以通过自定义事件
- 可以取消构建请求
使用数据 api:
request.master.data.control("cancel",
("buildrequests", request.id))
为了使用 buildbot 触发不同的操作(启动、检查、停止)并根据事件状态取消构建请求(基于文件实现 threading.Event 接口),我们使用了nextBuild 属性 of buildbot.plugins.util.BuilderConfig (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
所以问题是我如何取消使用 buildbot 1.2.0 的构建请求?
它不需要在 nextBuild 属性中,但在我有的地方:
- 访问当前操作
- 可以通过自定义事件
- 可以取消构建请求
使用数据 api:
request.master.data.control("cancel",
("buildrequests", request.id))