SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: buildbot
The MailNotifier
is a status target which can send email about the results of each build. It accepts a static list of email addresses to which each message should be delivered, but it can also be configured to send mail to the Build
’s Interested Users. To do this, it needs a way to convert User names into email addresses.
For many VC systems, the User Name is actually an account name on the system which hosts the repository. As such, turning the name into an email address is a simple matter of appending @repositoryhost.com
. Some projects use other kinds of mappings (for example the preferred email address may be at project.org
despite the repository host being named cvs.project.org
), and some VC systems have full separation between the concept of a user and that of an account on the repository host (like Perforce). Some systems (like Git) put a full contact email address in every change.
To convert these names to addresses, the MailNotifier
uses an EmailLookup
object. This provides a getAddress
method which accepts a name and (eventually) returns an address. The default MailNotifier
module provides an EmailLookup
which simply appends a static string, configurable when the notifier is created. To create more complex behaviors (perhaps using an LDAP lookup, or using finger
on a central host to determine a preferred address for the developer), provide a different object as the lookup
argument.
If an EmailLookup object isn’t given to the MailNotifier, the MailNotifier will try to find emails through User Objects. This will work the same as if an EmailLookup object was used if every user in the Build’s Interested Users list has an email in the database for them. If a user whose change led to a Build doesn’t have an email attribute, that user will not receive an email. If extraRecipients
is given, those users are still sent mail when the EmailLookup object is not specified.
In the future, when the Problem mechanism has been set up, the Buildbot will need to send mail to arbitrary Users. It will do this by locating a MailNotifier
-like object among all the buildmaster’s status targets, and asking it to send messages to various Users. This means the User-to-address mapping only has to be set up once, in your MailNotifier
, and every email message the buildbot emits will take advantage of it.