使用 Buildbot Source Step:为什么 'codebase' 不能通过插值设置而 'repourl' 可以?
With Buildbot Source Step: why can 'codebase' not be set via Interpolate while 'repourl' can?
我有一个在多个构建器中使用的工厂,我通过 util.Property
和 util.Interpolate
设置构建器特定设置。虽然这对 repourl
和 branch
有效,但对 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)
)
)
没有代码库部分一切正常。然后我想我需要为某些情况设置代码库,所以我添加了代码库行,导致以下错误:
[-] Configuration Errors:
[-] error while parsing config file: sequence item 1: expected
string, Interpolate found traceback in logfile
有谁知道为什么不能通过插值设置 codebase
而用 repourl
做同样的事情没问题?
有人知道如何将源代码步骤的代码库设置为与“”不同的东西,并且仍然不为每个构建器创建单独的工厂实例吗?
非常感谢对此的任何见解和任何有用的建议。
我认为这是 Buildbot 中的错误。查看 Buildbot 0.8.12 源代码,我可以看到在 buildbot/steps/source/git.py
中,在 class Git
中,renderables
属性包括 "codebase"
,这应该意味着您可以使用 Interpolate
这样。大概其他一些代码假设它可以在解析配置时将 codebase
解释为字符串。
换句话说,据我所知,您正在做 Git
class 声称支持的事情。
看起来 buildbot/steps/source/oldsource.py
中的旧式 Git 支持不支持 codebase
作为可渲染的,但在我看来您正在使用那。不过,我不是很确定,因为我不确定 steps.Git
指的是什么。
我有一个在多个构建器中使用的工厂,我通过 util.Property
和 util.Interpolate
设置构建器特定设置。虽然这对 repourl
和 branch
有效,但对 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)
)
)
没有代码库部分一切正常。然后我想我需要为某些情况设置代码库,所以我添加了代码库行,导致以下错误:
[-] Configuration Errors:
[-] error while parsing config file: sequence item 1: expected
string, Interpolate found traceback in logfile
有谁知道为什么不能通过插值设置 codebase
而用 repourl
做同样的事情没问题?
有人知道如何将源代码步骤的代码库设置为与“”不同的东西,并且仍然不为每个构建器创建单独的工厂实例吗?
非常感谢对此的任何见解和任何有用的建议。
我认为这是 Buildbot 中的错误。查看 Buildbot 0.8.12 源代码,我可以看到在 buildbot/steps/source/git.py
中,在 class Git
中,renderables
属性包括 "codebase"
,这应该意味着您可以使用 Interpolate
这样。大概其他一些代码假设它可以在解析配置时将 codebase
解释为字符串。
换句话说,据我所知,您正在做 Git
class 声称支持的事情。
看起来 buildbot/steps/source/oldsource.py
中的旧式 Git 支持不支持 codebase
作为可渲染的,但在我看来您正在使用那。不过,我不是很确定,因为我不确定 steps.Git
指的是什么。