如何通知BuildBot步骤上一步失败?

问题描述 投票:0回答:2

在BuildBot中,如果上一步失败,我想要一个不执行的步骤。

例如,在下面的类中,如果test_package()失败,我不希望install()执行。

class Sage(Project):
    distros = [RHEL7()]
    tests = [SageTest()]

    def test_package(self, f, dist):
        HaltOnFailure=True
        set_properties = {
            'package_file_name': util.Property('package_file_name'),
            'master_dir': dist.master_dir()
        }
        if isinstance(dist, RHEL7):
            f.addStep(steps.Trigger(
                schedulerNames=['sage-rhel7-sage-test'],
                doStepIf=partial(do_step, 'sage-rhel7-sage-test'),
                    waitForFinish=True,
                    set_properties=set_properties))   

    def install(self, f, dist):
        super(Sage, self).install(f, dist)

如何通知install()test_package()失败?

buildbot
2个回答
1
投票

尝试使用一些常见的步骤参数:2.5.9.1. Common Parameters

例如,haltOnFailure:

f.addStep(steps.Trigger(
    schedulerNames=['sage-rhel7-sage-test'],
    doStepIf=partial(do_step, 'sage-rhel7-sage-test'),
        waitForFinish=True,
        set_properties=set_properties,
        haltOnFailure=True))

您还可以尝试各种组合的doStepIf,hideStepIf,alwaysRun,haltOnFailure,flunkOnWarnings,flunkOnFailure,warnOnWarnings,warnOnFailure for your purpose

但是可能更好的做法是重构代码以在单独的步骤中使用安装功能并构建解决方案,作为具有特定条件的一系列步骤。


-1
投票

BuildStep是所有构建步骤的超类,因此所有子类都可以使用followig kwargs

name, description, descriptionDone, descriptionSuffix, locks, haltOnFailure,
flunkOnWarnings, flunkOnFailure, warnOnWarnings, warnOnFailure, alwaysRun,
progressMetrics, useProgress, doStepIf, hideStepIf

Reference

© www.soinside.com 2019 - 2024. All rights reserved.