在buildbot中创建自定义buildstep后面临的问题

时间:2019-09-27 12:34:43

标签: python-3.x buildbot

运行worker后,我在buildbot中创建了自定义buildstep,这给了我以下错误。

builtins.AttributeError:'MyStep'对象没有属性'stopped'

步骤是: custom_factory.addStep(MyStep(messages =“ Hi”))

如果您有如何编写自定义构建步骤的示例,请分享。

1 个答案:

答案 0 :(得分:0)

您正在尝试访问类“ MyStep”的名为“ stopped”的成员,而该成员不存在。这样的访问之一可能是“ self.stopped”之类的现场访问。

在黑暗中射击,这是我在机器人中执行的简单自定义步骤,为您提供示例:

class _ClearPropertyStep(steps.BuildStep):
    """
        Step that clears a property
    """

    def __init__(self, prop, **kwargs):
        steps.BuildStep.__init__(self, **kwargs)
        assert prop is not None and len(prop) > 0
        self.property = prop

    @defer.inlineCallbacks
    def run(self):
        print("Clearing property " + self.property)
        self.setProperty(self.property, None, str(type(self)))
        yield defer.returnValue(SUCCESS)

这是另一个:

class _URLStep(steps.BuildStep):
    """
        Step whose only purpose is to show a description and an URL
    """

    renderables = steps.BuildStep.renderables + [
        'url_text',
        'url',
    ]

    def __init__(self, url_text, url, **kwargs):
        steps.BuildStep.__init__(self, **kwargs)
        assert url_text is not None
        self.url_text = url_text
        assert url is not None
        self.url = url

    @defer.inlineCallbacks
    def run(self):
        print("Setting URL: " + str(self.url))
        self.addURL(self.url_text, self.url)
        yield defer.returnValue(SUCCESS)