gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:14:34 24 4
gpt4 key购买 nike

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

GitPoller:

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

这是一个辅助函数,我在几个构建器上使用它来检查代码。我几乎总是不带参数地调用它。使用参数对于特定分支来说是一种罕见的情况,上面的调度器并没有运行这样的构建器。我假设当我不使用任何参数时,我总是在 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 . (来自 repo )
  • Git 是版本 2.7.4 . (来自 repo )
  • 最佳答案

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

    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 中的任何分支触发构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42255513/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com