Commit 9046a417 authored by Robert Ma's avatar Robert Ma Committed by Commit Bot

rebaseline_cl: Don't specify bucket when triggering tryjobs

This CL changes the behavior of the git_cl.py module to only specify the
bucket if it's explicitly given to it. git cl will figure out the
appropriate bucket to schedule tryjobs in.

TBR=robertma@chromium.org

Bug: 891729
Change-Id: Id1ed02d1a3cc3aca53710bf67a69e9da1c7a8a85
Reviewed-on: https://chromium-review.googlesource.com/c/1289694
Commit-Queue: Stephen Martinis <martiniss@chromium.org>
Reviewed-by: default avatarNodir Turakulov <nodir@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601195}
parent 02cb80e6
......@@ -92,7 +92,6 @@
"is_try_builder": true
},
"android_blink_rel": {
"bucket": "master.tryserver.chromium.android",
"port_name": "android-kitkat",
"specifiers": ["KitKat", "Release"],
"is_try_builder": true
......
......@@ -79,7 +79,8 @@ class MockHost(MockSystemHost):
},
'Fake Test Mac10.12': {
'port_name': 'mac-mac10.12',
'specifiers': ['Mac10.12', 'Release']
'specifiers': ['Mac10.12', 'Release'],
'is_try_builder': True,
},
'fake_blink_try_linux': {
'port_name': 'linux-trusty',
......@@ -91,12 +92,6 @@ class MockHost(MockSystemHost):
'specifiers': ['Win10', 'Release'],
'is_try_builder': True,
},
'fake_mac_cq': {
'bucket': 'master.tryserver.chromium.mac',
'port_name': 'mac-mac10.12',
'specifiers': ['Mac10.12', 'Release'],
'is_try_builder': True,
},
'android_blink_rel': {
'bucket': 'master.tryserver.chromium.android',
'port_name': 'android-kitkat',
......
......@@ -71,10 +71,13 @@ class GitCL(object):
builders_by_bucket = {bucket: builders}
else:
builders_by_bucket = self._group_builders_by_bucket(builders)
# Sort both buckets and builders to ensure stable unit tests.
for bucket in sorted(builders_by_bucket):
command = ['try', '-B', bucket]
command = ['try']
# Only specify bucket if it's explicitly given to us. Otherwise,
# `git cl` will figure out the appropriate bucket.
if bucket:
command.extend(['-B', bucket])
for builder in sorted(builders_by_bucket[bucket]):
command.extend(['-b', builder])
self.run(command)
......@@ -84,7 +87,7 @@ class GitCL(object):
for builder in builders:
bucket = self._host.builders.bucket_for_builder(builder)
builders_by_bucket[bucket].append(builder)
return builders_by_bucket
return dict(builders_by_bucket)
def get_issue_number(self):
"""Returns the issue number as a string, or "None"."""
......
......@@ -43,12 +43,10 @@ class GitCLTest(unittest.TestCase):
# default. Besides, `git cl try` invocations are grouped by buckets.
host = MockHost()
git_cl = GitCL(host, auth_refresh_token_json='token.json')
git_cl.trigger_try_jobs(['android_blink_rel', 'fake_blink_try_linux',
'fake_blink_try_win', 'fake_mac_cq'])
git_cl.trigger_try_jobs(['android_blink_rel', 'fake_blink_try_linux', 'fake_blink_try_win'])
self.assertEqual(host.executive.calls, [
[
'git', 'cl', 'try',
'-B', 'master.tryserver.blink',
'-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win',
'--auth-refresh-token-json', 'token.json'
],
......@@ -58,12 +56,6 @@ class GitCLTest(unittest.TestCase):
'-b', 'android_blink_rel',
'--auth-refresh-token-json', 'token.json'
],
[
'git', 'cl', 'try',
'-B', 'master.tryserver.chromium.mac',
'-b', 'fake_mac_cq',
'--auth-refresh-token-json', 'token.json'
],
])
def test_trigger_try_jobs_with_frozenset(self):
......@@ -74,7 +66,6 @@ class GitCLTest(unittest.TestCase):
self.assertEqual(host.executive.calls, [
[
'git', 'cl', 'try',
'-B', 'master.tryserver.blink',
'-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win',
'--auth-refresh-token-json', 'token.json'
],
......@@ -84,13 +75,13 @@ class GitCLTest(unittest.TestCase):
# An explicit bucket overrides configured or default buckets.
host = MockHost()
git_cl = GitCL(host, auth_refresh_token_json='token.json')
git_cl.trigger_try_jobs(['fake_blink_try_linux', 'fake_mac_cq'],
git_cl.trigger_try_jobs(['fake_blink_try_linux', 'android_blink_rel'],
bucket='luci.dummy')
self.assertEqual(host.executive.calls, [
[
'git', 'cl', 'try',
'-B', 'luci.dummy',
'-b', 'fake_blink_try_linux', '-b', 'fake_mac_cq',
'-b', 'android_blink_rel', '-b', 'fake_blink_try_linux',
'--auth-refresh-token-json', 'token.json'
],
])
......
......@@ -36,9 +36,6 @@ import json
from blinkpy.common.path_finder import PathFinder
# TODO(crbug.com/818301): Remove it when we no longer have bots in this bucket.
DEFAULT_BUCKET = 'master.tryserver.blink'
class BuilderList(object):
......@@ -83,7 +80,7 @@ class BuilderList(object):
return sorted({b['port_name'] for b in self._builders.values()})
def bucket_for_builder(self, builder_name):
return self._builders[builder_name].get('bucket', DEFAULT_BUCKET)
return self._builders[builder_name].get('bucket', '')
def port_name_for_builder_name(self, builder_name):
return self._builders[builder_name]['port_name']
......
......@@ -71,7 +71,7 @@ class BuilderListTest(unittest.TestCase):
def test_bucket_for_builder_default_bucket(self):
builders = self.sample_builder_list()
self.assertEqual('master.tryserver.blink', builders.bucket_for_builder('Try A'))
self.assertEqual('', builders.bucket_for_builder('Try A'))
def test_bucket_for_builder_configured_bucket(self):
builders = self.sample_builder_list()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment