如何为 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 运行 在分支上进行更改?
配置:
- buildbot master 运行正在 XUbuntu
16.04.1
64 位上运行。
- buildbot 版本为
0.8.12
。 (来自回购协议)
- Git 是版本
2.7.4
。 (来自回购协议)
我已经修好了。似乎不像我想象的那样自动。分支必须传递到 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,而且我不想过多更改我的配置。
我在一个项目中使用 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 运行 在分支上进行更改?
配置:
- buildbot master 运行正在 XUbuntu
16.04.1
64 位上运行。 - buildbot 版本为
0.8.12
。 (来自回购协议) - Git 是版本
2.7.4
。 (来自回购协议)
我已经修好了。似乎不像我想象的那样自动。分支必须传递到 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,而且我不想过多更改我的配置。