【问题标题】:How to setup buildbot for如何设置 buildbot
【发布时间】:2013-11-17 16:10:59
【问题描述】:

我是 buildbot 的新手,正在努力为以下 python 代码结构创建配置:

包含一些通用类和函数的库以及依赖于一个库的两个程序。这三个都有自己的 git 存储库。让我们调用库the_lib 和程序prog_aprog_b

我希望buildbot 为我做的是定期检查存储库是否有更改,如果是,则重建必要的内容。因此,对the_lib 源的更改应该重建所有三个,对prog_a 源的更改应该只重建prog_a,对prog_b 源的更改应该只重建prog_b

当它的源发生变化时,我可以构建这三个中的任何一个,但是如何在the_lib 上引入prog_aprog_b 的de 依赖关系?

干杯, 飞哥

【问题讨论】:

    标签: python git dependencies buildbot


    【解决方案1】:

    您可以通过单个源更改触发多个构建器,在以下示例中,前两个分别触发自己的构建,但第三个触发所有三个:

      yield basic.AnyBranchScheduler(
                name = prog_a, treeStableTimer=delay,
                change_filter = my_a_filter,
                builderNames = [prog_a],
                )
    
      yield basic.AnyBranchScheduler(
                name = prog_b, treeStableTimer=delay,
                change_filter = my_b_filter,
                builderNames = [prog_b],
                )
    
      yield basic.AnyBranchScheduler(
                name = the_lib, treeStableTimer=delay,
                change_filter = my_lib_filter,
                builderNames = [prog_a, prog_b, the_lib],
                )
    

    【讨论】:

    • 能详细说明yield的用法吗?如果你有一个有趣的动态生成配置的例子,你能分享一下有趣的部分吗?谢谢!
    • 我在这里使用 yield 假设您需要将这些项目返回到您的 master.cfg 文件中的 c['schedulers'] 我的 master.cfg 文件有这一行:c['schedulers'] = schedulers = list(config.schedulers.get_schedulers()) 上面的代码在 config/schedulers.py 中,它被导入到 master.cfg 中
    【解决方案2】:

    对于prog_(a|b) 中的更改,您可以使用简单的single branch scheduler 来调用它们的构建器。

    对于the_lib,您有两种选择:

    1. prog_aprog_b的builder创建Dependant调度器,并将上游调度器设置为the_lib的单分支调度器。
    2. prog_(a|b)Triggerable 调度程序配置,并使用the_lib 构建器中的Trigger 构建步骤触发它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      相关资源
      最近更新 更多