blob: 8ea30ef00b48302d1981058425f88e6e8ce0b950 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from buildbot.status.builder import FAILURE
from master import chromium_notifier
from master import master_utils
v8_steps = [
'update',
'runhooks',
'gn',
'compile',
'Presubmit',
'Static-Initializers',
'Check',
'Unittests',
'OptimizeForSize',
'Mjsunit',
'Webkit',
'Benchmarks',
'Test262',
'Mozilla',
'GCMole',
'Fuzz',
'Deopt Fuzz',
'Simple Leak Check',
# TODO(machenbach): Enable mail notifications as soon as a try builder is
# set up.
# 'webkit_tests',
]
# This is the list of the builder categories and the corresponding critical
# steps. If one critical step fails, the blame list will be notified.
# Note: don't include 'update scripts' since we can't do much about it when
# it's failing and the tree is still technically fine.
categories_steps = {
'': v8_steps,
}
exclusions = {
'V8 Linux - swarming staging': [],
'V8 Linux64 - cfi': [],
'V8 Linux64 - gcov coverage': [],
'V8 Linux - predictable': [],
}
forgiving_steps = ['update_scripts', 'update', 'svnkill', 'taskkill',
'gclient_revert']
vtunejit_categories_steps = {'vtunejit': ['runhooks', 'compile']}
mem_sheriff_categories_steps = {'mem_sheriff': v8_steps}
predictable_categories_steps = {'predictable': v8_steps}
clusterfuzz_categories_steps = {'clusterfuzz': ['check clusterfuzz']}
class V8Notifier(chromium_notifier.ChromiumNotifier):
def isInterestingStep(self, build_status, step_status, results):
"""Watch only failing steps."""
return results[0] == FAILURE
def Update(config, active_master, c):
c['status'].append(V8Notifier(
fromaddr=active_master.from_address,
categories_steps=categories_steps,
exclusions=exclusions,
relayhost=config.Master.smtp,
sendToInterestedUsers=True,
status_header='buildbot failure in %(project)s on %(builder)s, %(steps)s',
lookup=master_utils.FilterDomain(),
forgiving_steps=forgiving_steps))
c['status'].append(V8Notifier(
fromaddr=active_master.from_address,
categories_steps=vtunejit_categories_steps,
exclusions={},
relayhost=config.Master.smtp,
sendToInterestedUsers=False,
extraRecipients=['chunyang.dai@intel.com'],
status_header='buildbot failure in %(project)s on %(builder)s, %(steps)s',
lookup=master_utils.FilterDomain(),
forgiving_steps=forgiving_steps))
c['status'].append(V8Notifier(
fromaddr=active_master.from_address,
categories_steps=mem_sheriff_categories_steps,
exclusions={},
relayhost=config.Master.smtp,
sendToInterestedUsers=False,
extraRecipients=['hpayer@chromium.org', 'ulan@chromium.org'],
status_header='buildbot failure in %(project)s on %(builder)s, %(steps)s',
lookup=master_utils.FilterDomain(),
forgiving_steps=forgiving_steps))
c['status'].append(V8Notifier(
fromaddr=active_master.from_address,
categories_steps=predictable_categories_steps,
exclusions={},
relayhost=config.Master.smtp,
sendToInterestedUsers=False,
extraRecipients=['ishell@chromium.org'],
status_header='buildbot failure in %(project)s on %(builder)s, %(steps)s',
lookup=master_utils.FilterDomain(),
forgiving_steps=forgiving_steps))
c['status'].append(V8Notifier(
fromaddr=active_master.from_address,
categories_steps=clusterfuzz_categories_steps,
exclusions={},
relayhost=config.Master.smtp,
sendToInterestedUsers=False,
extraRecipients=[
'v8-clusterfuzz-sheriff@chromium.org',
'machenbach@chromium.org',
],
status_header='buildbot failure in %(project)s on %(builder)s, %(steps)s',
lookup=master_utils.FilterDomain(),
forgiving_steps=forgiving_steps))