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