如何为 buildbot 中的任何分支触发构建

How to trigger a build for any branch in buildbot

我在一个项目中使用 buildbot,我有一个调度程序设置,每次有更改时都会自动构建项目,以测试它是否编译正常。这有效并且 buildbot 检测到所有分支上的更改,但调度程序始终构建 master 分支,无论更改发生在哪个分支上。我希望它构建更改所在的分支,但我无法完成这项工作。以下是 buildbot 配置的相关部分:

Git轮询器:

c['change_source'].append(GitPoller(
    repourl='git@git.somewhere.com:someproject.git',
    branches=True,
    pollinterval=60))

调度器:

c['schedulers'].append(AnyBranchScheduler(
    name='all',
    treeStableTimer=2*60,
    builderNames=['builder 1', 'builder 2']))

这是一个辅助函数,我在几个构建器上使用它来检查代码。我几乎总是在不带参数的情况下调用它。使用该参数对于特定分支来说是一种罕见的情况,并且上面的调度程序没有 运行 这样的构建器。我假设当我不使用任何参数时,我总是 运行ning 在 else 块中:

def CheckoutFactory(whichBranch = ''):
    factory = BuildFactory()
    if whichBranch:
        factory.addStep(Git(repourl='git@git.somewhere.com:someproject.git', branch=whichBranch, mode='full', method='fresh', alwaysUseLatest=True, progress=True))
    else:
        factory.addStep(Git(repourl='git@git.somewhere.com:someproject.git', mode='full', method='fresh', alwaysUseLatest=True, progress=True))
    return factory

这里有什么问题?我是不是做错了什么,如何让 buildbot 运行 在分支上进行更改?

配置:

我已经修好了。似乎不像我想象的那样自动。分支必须传递到 Git 步骤,使用 branch 属性 的值。我是这样做的:

factory.addStep(Git(repourl='git@git.somewhere.com:someproject.git', branch=WithProperties('%s', 'branch'), mode='full', method='fresh', alwaysUseLatest=True, progress=True))

相关变化是增加了这个参数:

branch=WithProperties('%s', 'branch')

我使用的是已弃用的 WithProperties 而不是 Propery,因为那样会触发 this problem,而且我不想过多更改我的配置。