我如何才能任意告诉Buildbot不要为给定的更改安排构建?

路易

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

我知道授权逻辑中stopChange特权,但是无论出于什么原因,Buildbot都不会向我显示停止更改的按钮,即使我已经给自己授予了特权。而且,即使它起作用了,在Buildbot开始构建之前,我本质上也必须在基于Web的UI中捕获更改。整rick

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

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

您可以使用该fileIsImportant选项来检查更改中是否存在文件,如果此文件已更改,则认为更改不重要,这将导致Buildbot不安排构建。所以:

def fileIsImportant(change):

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

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

然后您像这样注册您的调度程序:

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

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

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

def fileIsImportant(change):

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

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

使用此功能,如果提交消息中包含text [skipbuild],则更改不会安排构建。

我更喜欢第一种选择,因为a)它不会污染提交消息,b)我发现在文件库根目录中查找要更改的文件并进行更改比记住要在提交消息中放入哪些魔术文本来跳过要容易得多构建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

告诉ProGuard混淆给定的方法,但不要更改其名称

我如何告诉Sentry不要警告某些例外情况?

我如何告诉cgo不要编译文件?

我如何制作仅在对特定目录进行更改时才能使用Codeship构建的脚本?

我如何才能排除对管道Yaml文件的更改以触发izure devops进行的构建?

Angular 7:如何告诉 Angular 编译器/构建器不要包含来自 js 的数据?

我如何告诉SBT使用Scala的2.12或2.13的每日构建?

Makefile不构建对象我如何告诉它

我如何告诉Cygwin,依赖项是从源构建的?

如何确定buildbot是否正在构建?

我应该在哪里更改代码以告诉 PyTorch 不要使用 GPU?

我怎样才能安排更多的div?

SharpRepository.EntityFramework 即使我告诉它不要缓存数据,我该如何防止它?

我如何才能一一列举出安排的要素?在Reactjs的div中

Google告诉您不要更改动态网址,而是提供此网址,如何?

给定我知道的实际数字,我该如何构建ThreadId?

如何告诉Gradle不要在我的.jar依赖项中排除.so文件?

我如何告诉TYPO3不要缓存,所以它会更新数据库值

当Windows 7告诉我“考虑更改密码”时,我要等多长时间才能密码到期?

告诉MATLAB不要为特定图更新下一个默认颜色

如何安排 GitHub Actions 每晚构建,但仅在最近代码更改的地方运行它?

告诉自制软件永远不要从源头构建

RecyclerView:如何告诉不要回收?

如何告诉剃刀不要HTML逃生

如何告诉PyTorch不要使用GPU?

如何告诉 Codeigniter 不要存储缓存?

如何告诉Jest不要调用特定函数?

如何告诉Rails不要预先渲染组件?

我可以告诉C ++编译器本身如何进行任意类型转换吗?