定义构建步骤时如何从src :: branch属性计算值

时间:2019-08-21 14:53:14

标签: buildbot

我必须基于src::branch属性并根据可用文档为构建步骤计算一个值,这似乎只有通过定义custom renderables才能实现。

我创建了一个自定义可渲染对象,定义如下:

@implementer(IRenderable)
class DetermineVersion(object):
    def getRenderingFor(self, props):
        if props.hasProperty("src::branch"):
            return "--version=" + props['src::branch'].lower().replace("tag/", "")
        else:
            raise Exception("The property 'branch' (tag/version) must be set")

并在构建步骤中按如下方式使用它:

    f.addStep(steps.ShellCommand(
        name="create_tag",
        command=["python", "createTag.py", DetermineVersion()],
    ))

不幸的是,这似乎无法按预期工作,并且不管是否设置了“ branch”属性,我总是会看到getRenderingFor函数引发的异常。

1 个答案:

答案 0 :(得分:0)

我使用了错误的属性名称src::branch而不是branch

这按预期工作:

@implementer(IRenderable)
class DetermineVersion(object):
    def getRenderingFor(self, props):
        if props.hasProperty("branch"):
            return "--version=" + props['branch'].lower().replace("tag/", "")
        else:
            raise Exception("The property 'branch' (tag/version) must be set")