使用Buildbot Source Step:为什么可以使用' codebase'不要通过Interpolate设置,而不要重新设置'能够?

时间:2015-05-28 14:01:02

标签: buildbot codebase

我有一个工厂,我在几个构建器中使用,我通过util.Propertyutil.Interpolate设置了特定于构建器的设置。虽然这适用于repourlbranch,但它根本不适用于codebase。下面的代码显示了我想在Buildbot配置中使用它的源步骤。

factory.addStep(
    steps.Git(repourl=util.Interpolate('git://repo_base_path/%(prop:build_repository)s', default=''),
              branch=util.Property('build_branch', default='master'),
              mode='full',
              codebase=util.Interpolate('%(prop:build_repository)s', default=''),
              method='copy', submodules=True, clobberOnFailure=True)
    )
)

没有代码库部分一切正常。然后我想我需要为某些情况设置代码库,所以我添加了codebase行,导致以下错误:

[-] Configuration Errors:
[-]   error while parsing config file: sequence item 1: expected
      string, Interpolate found traceback in logfile

有人知道为什么不能通过Interpolate设置codebase,而对repourl做同样的事情是没有问题的吗? 有人知道如何将源步骤的代码库设置为不同于''并且仍然没有为每个构建器创建单独的工厂实例?

对此有任何见解以及任何有用的建议都非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为这是Buildbot中的一个错误。查看Buildbot 0.8.12源代码,我可以在buildbot/steps/source/git.py class Git中看到renderables属性包含"codebase",这意味着您可以使用Interpolate 1}}这样。据推测,其他一些代码假设它可以在解析配置时将codebase解释为字符串。

换句话说,就我所知,你正在做一些Git阶级声称支持的事情。

看起来buildbot/steps/source/oldsource.py中的旧式Git支持不支持codebase是可渲染的,但它并不像我一样使用它。但我并不完全确定,因为我不确定steps.Git指的是什么。