blob: d3afe71d89e1a8bb606e6392a25bbe1714786997 [file] [log] [blame]
# Copyright 2016 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.
"""Presubmit script for //content/browser/frame_host.
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details about the presubmit API built into depot_tools.
"""
import re
def _GetTryMasters(project, change):
return {
'tryserver.chromium.linux': {
'linux_site_isolation': [],
},
}
def GetPreferredTryMasters(project, change):
# TODO(nick, dcheng): Using the value of _GetTryMasters() instead of an empty
# value here would cause 'git cl try' to include the site isolation trybots,
# which would be nice. But it has the side effect of replacing, rather than
# augmenting, the default set of try servers. Re-enable this when we figure
# out a way to augment the default set.
return {}
def PostUploadHook(cl, change, output_api):
"""git cl upload will call this hook after the issue is created/modified.
This hook adds extra try bots to the CL description in order to run site
isolation tests in addition to CQ try bots.
"""
rietveld_obj = cl.RpcServer()
issue = cl.issue
description = rietveld_obj.get_description(issue)
if re.search(r'^CQ_INCLUDE_TRYBOTS=.*', description, re.M | re.I):
return []
masters = _GetTryMasters(None, change)
results = []
new_description = description
new_description += '\nCQ_INCLUDE_TRYBOTS=%s' % ';'.join(
'%s:%s' % (master, ','.join(bots))
for master, bots in masters.iteritems())
results.append(output_api.PresubmitNotifyResult(
'Automatically added site isolation trybots to run tests on CQ.'))
rietveld_obj.update_description(issue, new_description)
return results