Closed Bug 435472 Opened 16 years ago Closed 15 years ago

Add option to tryserver to email the owner of the build on build complete

Categories

(Release Engineering :: General, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jst, Assigned: bhearsum)

References

Details

Attachments

(3 files, 2 obsolete files)

It's easy to start a build on the tryserver and simply forget to look for it later and delay testing because of that etc. It'd seem natural to have the tryserver fire off an email when either one or all resulting builds are done, or failed.
Priority: -- → P3
Mass change of target milestone.
Target Milestone: --- → Future
Currently when someone submits a job to try server, they have to monitor the
try server waterfall to see if/when their job is done.

Can we use the ldap username to have buildbot send mail notifications to the
user? 

I'd guess we need 3 emails?
- job request queued
- job started
- job finished (success or fail)
Component: Try Server → Release Engineering
Product: Webtools → mozilla.org
QA Contact: try-server → release
Target Milestone: Future → ---
Version: Trunk → other
Assignee: nobody → catlee
Priority: P3 → P2
Depends on: 481886
Priority: P2 → P3
Now that try server has so many trees it's become harder to track down all of the different results so the emails would be even nicer.

It would also be nice to get the unit test results emailed.
Assignee: catlee → nobody
Component: Release Engineering → Release Engineering: Future
Priority: P3 → --
(In reply to comment #5)
> http://buildbot.net/trac/ticket/175

This was fixed. I guess we just need to pull a recent buildbot?
(In reply to comment #8)
> (In reply to comment #5)
> > http://buildbot.net/trac/ticket/175
> 
> This was fixed. I guess we just need to pull a recent buildbot?

Yeah, and find time to make this happen.
Yes, we're just waiting for an opportune time to get bug 481886 finished.
Attached patch WIP (obsolete) — Splinter Review
Attachment #362292 - Attachment is obsolete: true
A few things left to do here:
- If warnings are detected, esp. on unittest builds, it would be nice to include the summaries for the relevant steps, and maybe even pieces of the log?

- We need to do something similar for talos, since that's on another master.

- This won't send out e-mails when the build _starts_.  That requires a whole new buildbot status plugin.  It's probably more important to know when there are results available for you to look at.

- There's currently not a good way for us to determine the URL of the log on Tinderbox, which sucks.  This means we can't include a link to the build / test log in the email, which sucks.
looks like catlee did most of the work here. i'll try to get this finished up tomorrow.
Assignee: nobody → bhearsum
Status: NEW → ASSIGNED
Priority: -- → P2
I'm looking to land this next week. To be clear, this will generate 6 e-mails per submission: 1 per platform for both dep and unittest builds. There is currently no way to disable it for certain users or submissions - it's one big on/off switch.

Are there any objections to this? Any readers of this whom it will annoy greatly?
This is based on your WIP, catlee. I'm improved on it a little bit: it's capable of giving both unittest and talos summaries. The MailNotifier also requires an implementer of IEmailLookup for sendToInterestedUsers to work properly, so that's included here too. Thankfully, it's very simple for us.
Attachment #376315 - Attachment is obsolete: true
Attachment #377696 - Flags: review?(catlee)
Pretty straightforward here - I'm just enabling the MailNotifier. Note that this patch depends on the very latest version of buildbot in http://hg.mozilla.org/build/buildbot which supports the extraHeaders parameter.
Attachment #377697 - Flags: review?(catlee)
Attachment #377697 - Flags: review?(catlee) → review+
Comment on attachment 377696 [details] [diff] [review]
try server email message generator

>diff -r aefb1dbc9e6f status/generators.py
>--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
>+++ b/status/generators.py	Fri May 15 12:29:39 2009 -0400
>@@ -0,0 +1,76 @@
>+import re
>+import os.path
>+
>+def buildTryCompleteMessage(attrs, packageDir, tinderboxTree):
>+    platform = ''
>+    task = ''
>+    identifier = ''
>+    who = ''
>+    builder = attrs['builderName']
>+
>+    try:
>+        identifier = attrs['buildProperties']['identifier']
>+    except KeyError:
>+        identifier = 'unknown'
>+    try:
>+        who = attrs['buildProperties']['who']
>+    except KeyError:
>+        who = 'unknown'
>+
>+    if 'Linux' in builder:
>+        platform = 'linux'
>+    elif 'OS X' in builder:
>+        platform = 'mac'
>+    elif 'WINNT' in builder:
>+        platform = 'win32'
>+
>+    if 'unit test' in builder:
>+        task = 'unit test'
>+    elif 'talos' in builder:
>+        task = 'talos'
>+    else:
>+        task = 'build'
>+
>+    url = packageDir % locals()
>+
>+    if attrs['result'] == 'success':
>+        text = """\
>+Your Try Server %(task)s (%(identifier)s) was successfully completed on \
>+%(platform)s.  """ % locals()
>+    elif attrs['result'] == 'warnings':
>+        text = """\
>+Your Try Server %(task)s (%(identifier)s) completed with warnings on \
>+%(platform)s.  """ % locals()
>+    else:
>+        text = """\
>+Your Try Server %(task)s (%(identifier)s) failed to complete on \
>+%(platform)s.\n\n""" % locals()
>+
>+    if attrs['result'] in ('success', 'warnings') and packageDir:
>+        text += "It should be available for download at %(url)s\n\n" % locals()
>+
>+    if task == 'unit test':
>+        text += "Summary of unittest results:\n"
>+        for log in attrs['logs']:
>+            if 'summary' not in log[0]:
>+                continue
>+            summary = ''.join(log[2]).replace('TinderboxPrint: ', '')
>+            summary = summary.replace('<br/>', ': ')
>+            text += '%s\n' % summary
>+        text += '\n'
>+
>+    elif task == 'talos':
>+        text += "Summary of talos results:\n"
>+        for log in attrs['logs']:
>+            if 'summary' not in log[0]:
>+                continue
>+            for line in summary:
>+                if '"test"' in line:
>+                    test = re.findall('>t[a-zA-Z]+: \d+\.[0-9a-zA-Z]+', line)[0]
>+                    text += '%s\n' % test
>+        text += '\n'
>+
>+    text += """Visit %(tinderboxTree)s to view the full logs.""" % locals()
>+
>+    return (text, 'plain')
>+
>diff -r aefb1dbc9e6f status/mail.py
>--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
>+++ b/status/mail.py	Fri May 15 12:29:39 2009 -0400
>@@ -0,0 +1,9 @@
>+from zope.interface import implements
>+
>+from buildbot import interfaces
>+
>+class MercurialEmailLookup:
>+    implements(interfaces.IEmailLookup)
>+
>+    def getAddress(self, user):
>+        return user
Attachment #377696 - Flags: review?(catlee) → review+
Attachment #377697 - Flags: checked‑in+
Comment on attachment 377697 [details] [diff] [review]
enable a MailNotifier for hg try builds

changeset:   1149:48f32c7c57e1
Attachment #377696 - Flags: checked‑in+
Comment on attachment 377696 [details] [diff] [review]
try server email message generator

changeset:   293:3e0eec734a0d
There was a fix needed on the Buildbot side, http://github.com/djmitche/buildbot/commit/2c197929544210b7e88ccf92234f66a87b02c45b, I'll need to restart the master to make it work - just waiting for a lull to do so.
Finally got this enabled today.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
This is totally awesome! However, from attachment 377697 [details] [diff] [review]:
  +TINDERBOX_TREE = "http://hg.mozilla.org/MozillaTry"
should be
  +TINDERBOX_TREE = "http://tinderbox.mozilla.org/MozillaTry"
I presume that winds up as a link in the email? Surely we can afford to make it http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry, rather than sending an email immediately when the build finishes with a link to a stale tree that will probably still show it as building.
Oops, thanks for catching that, Blake & Phil, I'll fix that.
This is trivial, so I'm just landing it.

changeset:   1157:6be17c26821e
Attachment #378842 - Flags: checked‑in+
Moving closed Future bugs into Release Engineering in preparation for removing the Future component.
Component: Release Engineering: Future → Release Engineering
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: