| # 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 |