我怎么能武断地告诉Buildbot不要为给定的更改安排构建?

2024-09-30 18:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在向我的存储库提交更改时,我希望能够实际上告诉Buildbot不要为更改安排构建。在

我知道authorization logic中的stopChange特权,但不管出于什么原因,Buildbot从未向我提供停止更改的按钮,即使我给了自己特权。此外,即使成功了,我也必须在Buildbot开始构建之前捕捉基于Web的UI中的变化。棘手。在

这就是我创建调度程序的方法:

c['schedulers'].append(SingleBranchScheduler(
    name="foo",
    change_filter=filter.ChangeFilter(project="foo", branch="master",
                                      repository=url),
    treeStableTimer=300,
    builderNames=["foo-build"]))

Tags: 方法程序webuifoo原因filter调度
1条回答
网友
1楼 · 发布于 2024-09-30 18:17:15

您可以使用fileIsImportant选项检查更改中是否存在某个文件,如果该文件已更改,则认为该更改不重要,这将导致Buildbot不计划生成。所以:

def fileIsImportant(change):

    if ".skipbuild" in change.files:
        return False

    # There could be more logic here to test other things...

然后按如下方式注册调度程序:

^{pr2}$

使用上面的代码,任何对名为.skipbuild的文件(出现在存储库根目录中的文件)进行更改的提交都不会导致生成被调度。我在自己的Buildbot配置中使用了与上面类似的代码。在

另一个选择是检查提交消息。与名字所暗示的相反,fileIsImportant真正决定的是一个更改是否重要,而不仅仅是一个文件。所以:

def fileIsImportant(change):

    if "[skipbuild]" in change.comments:
        return False

    # There could be more logic here to test other things...

使用此函数,如果提交消息包含文本[skipbuild],则更改不会安排生成。在

我更喜欢第一个选项,因为a)它不会污染提交消息,b)我发现在我的存储库根目录中查找要更改的文件并对其进行更改要比记住需要在提交消息中放入什么神奇的文本来跳过构建更容易。在

相关问题 更多 >