Buildbot отключает почтовый уведомитель для некоторых планировщиков (не для сборщиков)

У меня buildbot работает с 2 строителями. Первый сборщик выполняет этапы сборки, затем запускает (через запускаемый планировщик) второй сборщик, который выполняет тесты. Есть 3 планировщика: SingleBranch, Force и try, которые запускают 1-й компоновщик, также есть 2 почтовых уведомления:

for mode, builders in (('warnings', ['Build', 'Test']),
                   ('passing', ['Test'])):
   c['status'].append(MailNotifier(fromaddr='...',
                                   sendToInterestedUsers=True,
                                   extraRecipients=['...'],
                                   mode=mode,
                                   builders=builders,
                                   ))

Таким образом, один уведомитель отправляет отчеты об ошибках как сборщикам, так и сборщикам тестов, а другой уведомитель отправляет отчеты об успехах только сборщикам тестов (это означает, что сборка также была успешной). В настоящее время почтовое уведомление отправляет отчеты по всем трем планировщикам, которые активируют Build Builder. Вопрос: возможно ли заставить работать уведомители только для планировщика SingleBranch?

Заранее спасибо.

1 ответ

Решение

Нет простого способа сделать это. Однако можно делать то, что вы хотите:

class MyMailNotifier(MailNotifier):
    def isMailNeeded(self, build, results):
        if build.properties.getProperty('scheduler') == '<SingleBranchSchedulerName>':
            return MailNotifier.isMailNeeded(self, build, results)
        else:
            return False

Хотя этот код не тестировался, я вполне уверен, что он делает то, что вам нравится.

Другие вопросы по тегам