Skip to main content
 首页 » 编程设计

python之如何从 Buildbot 捕获内部版本号

2025年05月04日31cmt

master.cfg 中是否有我可以访问的变量?文档根本不清楚。谢谢。

请您参考如下方法:

有多种方法可以获取此信息,但这取决于您尝试访问它的位置。

如果您在 doStepIf 过程中(作为 addStep 的参数),这应该有效:

def insideDoStepIf(step): 
    step.build.getStatus().number 

如果您尝试通过构建器的下一个构建号来确定构建器的优先级,这应该可行:

def buildPriority(buildmaster, builders): 
    builders.sort(key=lambda b: b.builder_status.nextBuildNumber) 
    return builders 
 
c['prioritizeBuilders'] = buildPriority 

如果您有兴趣在 buildbot.status.mail.MailNotifier 的 messageFormatter 函数中获取此信息,请尝试以下操作:

def formatEmail(mode, name, build, results, master_status): 
    for builder in master_status.getBuilderNames(): 
        master_status.getBuilder(builder).nextBuildNumber 

我没有测试这些,我不能保证这里的 api 是稳定的,但我非常有信心这些应该可以工作,因为我正在做一些类似的事情 (虽然,没有内部版本号)在我自己的 master.cfg