[Buildbot-devel] Mail Notifiers to different projects

Ian Peters-Campbell mahatmamanic at gmail.com
Mon Mar 30 14:10:31 UTC 2009


You can definitely do something like that.  In my configuration I actually
am not only doing that, but also sending emails to different lists based on
build sucess/failure.  The code below is what I am doing...note that unless
you've modified the assertion that crashes 'passing' builds (check the BB
code) and you've created some internal difference between a release and an
integration build, this code won't work exactly as-is, but it should give
you the general idea :)


def createEmailNotifier(self, builder, baseRecipients, extraRecipients,
lookup):
        """\
        Create the mail notifier(s) for the given builder

        baseRecipients: generally the dev team
        extraRecipients: the release team
        lookup: email completion lookup
        """
        # release builder gets a wide-release email notifier for
        # successful builds only
        if builder['release']:
            emailAddresses = self.users.getEmailAddresses(extraRecipients)
            notifier = ExtendedMailNotifier(self.projectTracker,
                                            self.bbReplyAddress,
                                            mode = 'passing',
                                            builders = [builder['name']],
                                            lookup = lookup,
                                            extraRecipients =
emailAddresses)
            self.notifiers.append(notifier)

        # non-release builders get a narrow-release email for successful
builds
        else:
            emailAddresses = self.users.getEmailAddresses(baseRecipients)
            notifier = MailNotifier(self.bbReplyAddress, mode = 'passing',
                                    builders = [builder['name']], lookup =
lookup,
                                    extraRecipients = emailAddresses)
            self.notifiers.append(notifier)

        # all builders get a narrow-release notifier for failed builds
        emailAddresses = self.users.getEmailAddresses(baseRecipients)
        notifier = MailNotifier(self.bbReplyAddress, mode = 'failing',
addLogs = True,
                                builders = [builder['name']], lookup =
lookup,
                                extraRecipients = emailAddresses)
        self.notifiers.append(notifier)


On Mon, Mar 30, 2009 at 4:46 AM, Gavin <gavin at 16degrees.com.au> wrote:

> Hi All,
>
> Just wanted to clarify whether this should work :-
>
> from buildbot.status import mail
> c['status'].append(mail.MailNotifier(fromaddr="buildbot at localhost",
>                                     extraRecipients=["projectA at a.o"],
>                                     sendToInterestedUsers=False,
>                                     builders=["mod_perl_2_trunk"]))
>
> c['status'].append(mail.MailNotifier(fromaddr="buildbot at localhost",
>                                     extraRecipients=["projectB at a.o"],
>                                     sendToInterestedUsers=False,
>                                     builders=["james-server-trunk"]))
>
> etc etc , so each project only gets notification of their own builds.
>
> Cheers
>
> Gav...
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20090330/b8700db9/attachment.html>


More information about the devel mailing list