如何从Buildbot获取构建编号

1 投票
1 回答
1386 浏览
提问于 2025-04-17 04:01

有没有一个变量可以在 master.cfg 文件里使用?文档里没有说明得很清楚。谢谢。

1 个回答

6

获取这些信息的方法有很多,但具体要看你想在哪里访问它。

如果你在一个叫做 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

如果你想在一个 messageFormatter 函数中获取这些信息,用于 buildbot.status.mail.MailNotifier,可以试试这个:

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

我没有测试这些代码,也不能保证这里的接口是稳定的,但我相信这些应该可以用,因为我在自己的 master.cfg 里做了一些类似的事情(虽然不是用构建编号)。

撰写回答