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 @@ ...@@ -92,7 +92,6 @@
"is_try_builder": true "is_try_builder": true
}, },
"android_blink_rel": { "android_blink_rel": {
"bucket": "master.tryserver.chromium.android",
"port_name": "android-kitkat", "port_name": "android-kitkat",
"specifiers": ["KitKat", "Release"], "specifiers": ["KitKat", "Release"],
"is_try_builder": true "is_try_builder": true
......
...@@ -79,7 +79,8 @@ class MockHost(MockSystemHost): ...@@ -79,7 +79,8 @@ class MockHost(MockSystemHost):
}, },
'Fake Test Mac10.12': { 'Fake Test Mac10.12': {
'port_name': 'mac-mac10.12', 'port_name': 'mac-mac10.12',
'specifiers': ['Mac10.12', 'Release'] 'specifiers': ['Mac10.12', 'Release'],
'is_try_builder': True,
}, },
'fake_blink_try_linux': { 'fake_blink_try_linux': {
'port_name': 'linux-trusty', 'port_name': 'linux-trusty',
...@@ -91,12 +92,6 @@ class MockHost(MockSystemHost): ...@@ -91,12 +92,6 @@ class MockHost(MockSystemHost):
'specifiers': ['Win10', 'Release'], 'specifiers': ['Win10', 'Release'],
'is_try_builder': True, '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': { 'android_blink_rel': {
'bucket': 'master.tryserver.chromium.android', 'bucket': 'master.tryserver.chromium.android',
'port_name': 'android-kitkat', 'port_name': 'android-kitkat',
......
...@@ -71,10 +71,13 @@ class GitCL(object): ...@@ -71,10 +71,13 @@ class GitCL(object):
builders_by_bucket = {bucket: builders} builders_by_bucket = {bucket: builders}
else: else:
builders_by_bucket = self._group_builders_by_bucket(builders) builders_by_bucket = self._group_builders_by_bucket(builders)
# Sort both buckets and builders to ensure stable unit tests. # Sort both buckets and builders to ensure stable unit tests.
for bucket in sorted(builders_by_bucket): 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]): for builder in sorted(builders_by_bucket[bucket]):
command.extend(['-b', builder]) command.extend(['-b', builder])
self.run(command) self.run(command)
...@@ -84,7 +87,7 @@ class GitCL(object): ...@@ -84,7 +87,7 @@ class GitCL(object):
for builder in builders: for builder in builders:
bucket = self._host.builders.bucket_for_builder(builder) bucket = self._host.builders.bucket_for_builder(builder)
builders_by_bucket[bucket].append(builder) builders_by_bucket[bucket].append(builder)
return builders_by_bucket return dict(builders_by_bucket)
def get_issue_number(self): def get_issue_number(self):
"""Returns the issue number as a string, or "None".""" """Returns the issue number as a string, or "None"."""
......
...@@ -43,12 +43,10 @@ class GitCLTest(unittest.TestCase): ...@@ -43,12 +43,10 @@ class GitCLTest(unittest.TestCase):
# default. Besides, `git cl try` invocations are grouped by buckets. # default. Besides, `git cl try` invocations are grouped by buckets.
host = MockHost() host = MockHost()
git_cl = GitCL(host, auth_refresh_token_json='token.json') git_cl = GitCL(host, auth_refresh_token_json='token.json')
git_cl.trigger_try_jobs(['android_blink_rel', 'fake_blink_try_linux', git_cl.trigger_try_jobs(['android_blink_rel', 'fake_blink_try_linux', 'fake_blink_try_win'])
'fake_blink_try_win', 'fake_mac_cq'])
self.assertEqual(host.executive.calls, [ self.assertEqual(host.executive.calls, [
[ [
'git', 'cl', 'try', 'git', 'cl', 'try',
'-B', 'master.tryserver.blink',
'-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win', '-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win',
'--auth-refresh-token-json', 'token.json' '--auth-refresh-token-json', 'token.json'
], ],
...@@ -58,12 +56,6 @@ class GitCLTest(unittest.TestCase): ...@@ -58,12 +56,6 @@ class GitCLTest(unittest.TestCase):
'-b', 'android_blink_rel', '-b', 'android_blink_rel',
'--auth-refresh-token-json', 'token.json' '--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): def test_trigger_try_jobs_with_frozenset(self):
...@@ -74,7 +66,6 @@ class GitCLTest(unittest.TestCase): ...@@ -74,7 +66,6 @@ class GitCLTest(unittest.TestCase):
self.assertEqual(host.executive.calls, [ self.assertEqual(host.executive.calls, [
[ [
'git', 'cl', 'try', 'git', 'cl', 'try',
'-B', 'master.tryserver.blink',
'-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win', '-b', 'fake_blink_try_linux', '-b', 'fake_blink_try_win',
'--auth-refresh-token-json', 'token.json' '--auth-refresh-token-json', 'token.json'
], ],
...@@ -84,13 +75,13 @@ class GitCLTest(unittest.TestCase): ...@@ -84,13 +75,13 @@ class GitCLTest(unittest.TestCase):
# An explicit bucket overrides configured or default buckets. # An explicit bucket overrides configured or default buckets.
host = MockHost() host = MockHost()
git_cl = GitCL(host, auth_refresh_token_json='token.json') 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') bucket='luci.dummy')
self.assertEqual(host.executive.calls, [ self.assertEqual(host.executive.calls, [
[ [
'git', 'cl', 'try', 'git', 'cl', 'try',
'-B', 'luci.dummy', '-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' '--auth-refresh-token-json', 'token.json'
], ],
]) ])
......
...@@ -36,9 +36,6 @@ import json ...@@ -36,9 +36,6 @@ import json
from blinkpy.common.path_finder import PathFinder 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): class BuilderList(object):
...@@ -83,7 +80,7 @@ class BuilderList(object): ...@@ -83,7 +80,7 @@ class BuilderList(object):
return sorted({b['port_name'] for b in self._builders.values()}) return sorted({b['port_name'] for b in self._builders.values()})
def bucket_for_builder(self, builder_name): 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): def port_name_for_builder_name(self, builder_name):
return self._builders[builder_name]['port_name'] return self._builders[builder_name]['port_name']
......
...@@ -71,7 +71,7 @@ class BuilderListTest(unittest.TestCase): ...@@ -71,7 +71,7 @@ class BuilderListTest(unittest.TestCase):
def test_bucket_for_builder_default_bucket(self): def test_bucket_for_builder_default_bucket(self):
builders = self.sample_builder_list() 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): def test_bucket_for_builder_configured_bucket(self):
builders = self.sample_builder_list() 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