<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-infrastructure.
</pre>
<p><a href="https://github.com/macports/macports-infrastructure/commit/f6050e9d115f77a68487e6a57413d50eb1fdb7c9">https://github.com/macports/macports-infrastructure/commit/f6050e9d115f77a68487e6a57413d50eb1fdb7c9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new f6050e9 Email notification improvements
</span>f6050e9 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit f6050e9d115f77a68487e6a57413d50eb1fdb7c9
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Jan 29 18:45:03 2017 +1100
<span style='display:block; white-space:pre;color:#404040;'> Email notification improvements
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Only compile the regex used in portWatcherMessageFormatter once.
</span><span style='display:block; white-space:pre;color:#404040;'> Remove unneeded replacement of ';' with '@'.
</span><span style='display:block; white-space:pre;color:#404040;'> Add support for testing mail notifications in non-production mode.
</span>---
buildbot/master.cfg | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/buildbot/master.cfg b/buildbot/master.cfg
</span><span style='display:block; white-space:pre;color:#808080;'>index b281353..87c80ce 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/buildbot/master.cfg
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/buildbot/master.cfg
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -822,6 +822,8 @@ class PortsMailNotifier(status.MailNotifier, object):
</span> # dl.append(d)
return defer.gatherResults(dl)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+portWatcherMessageFormatter_pattern = re.compile(r"^Building '(?P<port>.*?)'.*?(\(failed to install dependency '(?P<dependency>.*?)'\))?( maintainers: (?P<maintainers>.*?)\.)?$")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> def portWatcherMessageFormatter(mode, name, build, results, master_status):
interested_users = set()
result = util.Results[results]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -845,13 +847,13 @@ def portWatcherMessageFormatter(mode, name, build, results, master_status):
</span> summary_log = [x for x in summary_step.getLogs() if x.getName() == 'stdio'][0]
failed_ports = set()
maintainers_to_notify = set()
<span style='display:block; white-space:pre;background:#ffe0e0;'>- pattern = re.compile(r"^Building '(?P<port>.*?)'.*?(\(failed to install dependency '(?P<dependency>.*?)'\))?( maintainers: (?P<maintainers>.*?)[.])?$")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global portWatcherMessageFormatter_pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pattern = portWatcherMessageFormatter_pattern
</span> # iterate through all the ports being built
for line in summary_log.getText().splitlines():
if 'ERROR' not in line:
continue
# in case of a build error, print the error and add the broken port(s) to the list
<span style='display:block; white-space:pre;background:#ffe0e0;'>- line = line.replace(';', '@')
</span> text.append('\t' + line.replace(' maintainers:', '\n\t> maintainers:'))
match = pattern.match(line)
if match:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -887,6 +889,16 @@ def portWatcherMessageFormatter(mode, name, build, results, master_status):
</span> interested_users)
if config['production']:
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ notifyUsers = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exception_recipients = ['macports-builds@lists.macports.org', 'admin@macports.org']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build_recipients = ['macports-builds@lists.macports.org']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notifyUsers = False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if 'notifyemail' in config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exception_recipients = [config['notifyemail']]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build_recipients = [config['notifyemail']]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if config['production'] or 'notifyemail' in config:
</span> c['status'].extend((
# send mail about base failures to users on the blamelist
status.MailNotifier(
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -897,28 +909,28 @@ if config['production']:
</span> lookup='',
mode=('problem'),
builders=base_buildernames,
<span style='display:block; white-space:pre;background:#ffe0e0;'>- extraRecipients=['macports-builds@lists.macports.org'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extraRecipients=build_recipients,
</span> #smtpPort=25,
#relayhost='localhost',
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sendToInterestedUsers=True),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sendToInterestedUsers=notifyUsers),
</span> PortsMailNotifier(
fromaddr='buildbot@macports.org',
extraHeaders={'Reply-To': 'noreply@macports.org'},
lookup='',
mode=('failing'),
builders=portwatcher_buildernames,
<span style='display:block; white-space:pre;background:#ffe0e0;'>- extraRecipients=['macports-builds@lists.macports.org'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extraRecipients=build_recipients,
</span> #smtpPort=25,
#relayhost='localhost',
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sendToInterestedUsers=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sendToInterestedUsers=notifyUsers,
</span> portMessageFormatter=portWatcherMessageFormatter),
# notifications about exceptions
status.MailNotifier(
fromaddr='buildbot@macports.org',
extraHeaders={'Reply-To': 'noreply@macports.org'},
mode=('exception'),
<span style='display:block; white-space:pre;background:#ffe0e0;'>- extraRecipients=['macports-builds@lists.macports.org', 'admin@macports.org'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sendToInterestedUsers=False)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extraRecipients=exception_recipients,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sendToInterestedUsers=notifyUsers)
</span> ))
####### PROJECT IDENTITY #######
</pre><pre style='margin:0'>
</pre>