如何将变量传递给 Buildbot?

How to pass variables to Buildbot?

我正在使用 Buildbot V.0.9.0rc3

当我通过命令行发送更改或收到对正确地址的 http Post 请求时,我的 Buildbot 会触发。

目前我以两种不同的方式向 Buildbot 发送更改

$ buildbot sendchange -m localhost:9999 -a example-user:pass -W me -C default

curl -X POST -d author=aalvz -d comments=mycomment -d project=my_project -d category=default -d repository=some http://192.168.33.20:8020/change_hook/base

我的调度器定义如下:

c['schedulers'].append(schedulers.SingleBranchScheduler(
                             name="waiter",
                             builderNames=["runtests"],
                             change_filter=util.ChangeFilter(category='default')))
c['www'] = dict(port=8020,
                plugins=dict(waterfall_view={}, console_view={}),
                change_hook_dialects={
                                      'base': True,
                                      'somehook': {'option1':True,
                                                   'option2':False}})

而我的 工厂步骤 克隆一个存储库如下所示:

factory.addStep(steps.Git(repourl='git@github.com:AAlvz/my_repo.git', mode='full', workdir='newFolder', branch='my_branch', submodules=True, clobberOnFailure=True))

我想 收到一个 POST 和一些数据,并使用该数据触发不同的命令。类似的东西:(使用 $ 使变量引人注目)

factory.addStep(steps.Git(repourl=$myjson.name, mode='full', workdir=$myjson.path, branch=$myjson.branch, submodules=True, clobberOnFailure=True))

这样我就可以发送 JSON 比如:

{myjson: {name: github/myrepo.git, path: /tmp/my/path, branch: my_branch}}

并能够克隆 JSON 提供的存储库。

提前致谢!我希望这个问题足够清楚。我可以提供日志或任何需要的配置。谢谢!

这是使用 Buildbot Properties 解决的。

您可以使用标志通过命令行(使用 PBChangeSource)发送它们

buildbot sendchange ... --properties=my_property:myvalue

如果需要多个属性,该标志可以多次使用。