Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何设置的buildbot_Python_Git_Dependencies_Buildbot - Fatal编程技术网

Python 如何设置的buildbot

Python 如何设置的buildbot,python,git,dependencies,buildbot,Python,Git,Dependencies,Buildbot,我是buildbot的新手,正在努力为以下python代码结构创建配置: 包含一些通用类和函数以及依赖于一个库的两个程序的库。三者都有自己的git存储库。让我们调用库库和程序prog\u a和prog\u b 我希望buildbot为我做的是定期检查存储库中的更改,如果是,则重建必要的内容。因此,对prog\u lib源代码的更改应该重建所有三个,对prog\u a源代码的更改应该只重建prog\u a,而对prog\u b源代码的更改应该只重建prog\u b 当三者的源代码发生变化时,我可以

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

包含一些通用类和函数以及依赖于一个库的两个程序的库。三者都有自己的git存储库。让我们调用库
和程序
prog\u a
prog\u b

我希望
buildbot
为我做的是定期检查存储库中的更改,如果是,则重建必要的内容。因此,对
prog\u lib
源代码的更改应该重建所有三个,对
prog\u a
源代码的更改应该只重建
prog\u a
,而对
prog\u b
源代码的更改应该只重建
prog\u b

当三者的源代码发生变化时,我可以构建其中的任何一个,但是如何在
库上引入
prog\u a
prog\u b
的去依赖性呢

干杯,
Feoh

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

  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],
            )

对于
程序(a | b)
中的更改,您可以使用一个简单的

对于
,您有两个选项:

  • prog\u a
    prog\u b
    的生成器创建一个调度程序,并将上游调度程序设置为库
    的单分支调度程序
  • prog|(a | b)
    a调度程序进行配置,并使用_lib
  • builder中的构建步骤触发它们
    你能详细说明一下收益率的用法吗?如果你有一个有趣的动态生成配置的例子,你能分享一些有趣的信息吗?谢谢我在这里使用yield是因为假设您需要将这些项目返回到master.cfg文件中的c['schedulers'],我的master.cfg文件有以下行:c['schedulers']=schedulers=list(config.schedulers.get_schedulers())上面的代码位于导入master.cfg的config/schedulers.py中