OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import re | |
6 | |
7 | |
8 def PostUploadHook(cl, change, output_api): | 5 def PostUploadHook(cl, change, output_api): |
9 rietveld_obj = cl.RpcServer() | 6 return output_api.EnsureCQIncludeTrybotsAreAdded( |
10 description = rietveld_obj.get_description(cl.issue) | 7 cl, |
11 | 8 [ |
12 existing_bots = (change.CQ_INCLUDE_TRYBOTS or '').split(';') | 9 'master.tryserver.chromium.linux:closure_compilation', |
13 clean_bots = set(filter(None, map(lambda s: s.strip(), existing_bots))) | 10 ], |
14 new_bots = clean_bots | set( | 11 'Automatically added optional Closure bots to run on CQ.') |
15 ['master.tryserver.chromium.linux:closure_compilation']) | |
16 new_tag = 'CQ_INCLUDE_TRYBOTS=%s' % ';'.join(new_bots) | |
17 | |
18 if clean_bots: | |
19 tag_reg = '^CQ_INCLUDE_TRYBOTS=.*$' | |
20 new_description = re.sub(tag_reg, new_tag, description, flags=re.M | re.I) | |
21 else: | |
22 new_description = description + '\n' + new_tag | |
23 | |
24 if new_description == description: | |
25 return [] | |
26 | |
27 rietveld_obj.update_description(cl.issue, new_description) | |
28 return [output_api.PresubmitNotifyResult( | |
29 'Automatically added optional Closure bots to run on CQ.')] | |
OLD | NEW |