| Index: PRESUBMIT.py
|
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py
|
| index 751ae525751be38445e4bca2fd0a02c0ac7dd03e..5a13d2fac8151cd30a76b8144fce2d20e680cd5a 100644
|
| --- a/PRESUBMIT.py
|
| +++ b/PRESUBMIT.py
|
| @@ -1784,29 +1784,28 @@ def CheckChangeOnCommit(input_api, output_api):
|
|
|
|
|
| def GetPreferredTryMasters(project, change):
|
| - import re
|
| - files = change.LocalPaths()
|
| -
|
| - import os
|
| import json
|
| - with open(os.path.join(
|
| - change.RepositoryRoot(), 'testing', 'commit_queue', 'config.json')) as f:
|
| - cq_config = json.load(f)
|
| - cq_verifiers = cq_config.get('verifiers_no_patch', {})
|
| - cq_try_jobs = cq_verifiers.get('try_job_verifier', {})
|
| - builders = cq_try_jobs.get('launched', {})
|
| -
|
| - for master, master_config in cq_try_jobs.get('triggered', {}).iteritems():
|
| - for triggered_bot in master_config:
|
| - builders.get(master, {}).pop(triggered_bot, None)
|
| -
|
| - # Explicitly iterate over copies of dicts since we mutate them.
|
| - for master in builders.keys():
|
| - for builder in builders[master].keys():
|
| - # Do not trigger presubmit builders, since they're likely to fail
|
| - # (e.g. OWNERS checks before finished code review), and we're
|
| - # running local presubmit anyway.
|
| - if 'presubmit' in builder:
|
| - builders[master].pop(builder)
|
| -
|
| - return builders
|
| + import os.path
|
| + import subprocess
|
| +
|
| + cq_config_path = os.path.join(
|
| + change.RepositoryRoot(), 'infra', 'config', 'cq.cfg')
|
| + # commit_queue.py below is a script in depot_tools directory, which has a
|
| + # 'builders' command to retrieve a list of CQ builders from the CQ config.
|
| + masters = json.loads(subprocess.check_output(
|
| + ['commit_queue', 'builders', cq_config_path], shell=True))
|
| +
|
| + # Explicitly iterate over copies of keys since we mutate them.
|
| + for master in masters.keys():
|
| + for builder in masters[master].keys():
|
| + # Do not trigger presubmit builders, since they're likely to fail
|
| + # (e.g. OWNERS checks before finished code review), and we're
|
| + # running local presubmit anyway.
|
| + if 'presubmit' in builder:
|
| + masters[master].pop(builder)
|
| + else:
|
| + # Convert testfilter format to the one expected by git-cl-try.
|
| + testfilter = masters[master][builder].get('testfilter', 'defaulttests')
|
| + masters[master][builder] = [testfilter]
|
| +
|
| + return masters
|
|
|