我有buildbot运行2个构建器。第一个构建器执行构建步骤,然后触发(通过可触发的调度程序)执行测试的第二个构建器。有3个调度程序:SingleBranch,Force和try,它们触发1st builder,还有2个邮件通知程序:
for mode, builders in (('warnings', ['Build', 'Test']),
('passing', ['Test'])):
c['status'].append(MailNotifier(fromaddr='...',
sendToInterestedUsers=True,
extraRecipients=['...'],
mode=mode,
builders=builders,
))
因此,一个通知程序发送有关构建和测试构建器失败的报告,另一个通知程序仅为“测试”构建器发送有关成功的报告(这意味着构建也成功)。当前邮件通知程序为激活“构建”构建器的所有三个调度程序发送报告。 问题:是否可以使通知程序仅适用于SingleBranch调度程序?
提前致谢。
答案 0 :(得分:1)
没有简单的方法可以做到这一点。但是可以做你想做的事:
class MyMailNotifier(MailNotifier):
def isMailNeeded(self, build, results):
if build.properties.getProperty('scheduler') == '<SingleBranchSchedulerName>':
return MailNotifier.isMailNeeded(self, build, results)
else:
return False
虽然这段代码没有经过测试,但我相信它可以满足您的需求。