Commit 667acf6d authored by Stephen Martinis's avatar Stephen Martinis Committed by Commit Bot

git_cl.py: Use build_address instead of URL parsing

The URL structure of the build info returned by `git cl try-results` is
different on LUCI than it was on buildbot. This CL changes git_cl.py to
instead look at the build_address of the build to determine the build
number.

Bug: 891729
Change-Id: I448638178942f2adbbb23c5dd947e305821a5417
Reviewed-on: https://chromium-review.googlesource.com/c/1302097
Commit-Queue: Stephen Martinis <martiniss@chromium.org>
Reviewed-by: default avatarRobert Ma <robertma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603263}
parent be448bda
......@@ -248,10 +248,14 @@ class GitCL(object):
url = result_dict['url']
if url is None:
return Build(builder_name, None)
match = re.match(r'.*/(\d+)/?$', url)
if match:
build_number = match.group(1)
return Build(builder_name, int(build_number))
# TODO(martiniss): Switch to using build number once `git cl
# try-results` uses buildbucket v2 API.
tags = result_dict.get('tags', [])
for tag in tags:
if tag.startswith("build_address:"):
build_number = tag.split('/')[-1]
return Build(builder_name, int(build_number))
match = re.match(r'.*/task/([0-9a-f]+)(/?|\?.*)$', url)
assert match, '%s did not match expected format' % url
task_id = match.group(1)
......
......@@ -201,7 +201,10 @@ class GitCLTest(unittest.TestCase):
'builder_name': 'some-builder',
'status': 'COMPLETED',
'result': 'FAILURE',
'url': 'http://ci.chromium.org/master/some-builder/100',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/100',
],
'url': 'http://ci.chromium.org/b/8931586523737389552',
},
]
self.assertEqual(
......@@ -348,12 +351,18 @@ class GitCLTest(unittest.TestCase):
'builder_name': 'builder-b',
'status': 'COMPLETED',
'result': 'SUCCESS',
'url': 'http://build.chromium.org/p/master/builders/builder-b/builds/100',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/100',
],
'url': 'http://build.chromium.org/b/123123123132123123',
},
{
'builder_name': 'builder-b',
'status': 'COMPLETED',
'result': 'SUCCESS',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/90',
],
'url': 'http://build.chromium.org/p/master/builders/builder-b/builds/90',
},
{
......@@ -366,7 +375,10 @@ class GitCLTest(unittest.TestCase):
'builder_name': 'builder-c',
'status': 'COMPLETED',
'result': 'SUCCESS',
'url': 'http://ci.chromium.org/master/builder-c/123',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/123',
],
'url': 'http://ci.chromium.org/b/123123123123123123',
},
]
self.assertEqual(
......@@ -383,21 +395,10 @@ class GitCLTest(unittest.TestCase):
'builder_name': 'builder-a',
'status': 'STARTED',
'result': None,
'url': 'http://ci.chromium.org/p/master/some-builder/100',
},
]
self.assertEqual(
git_cl.latest_try_jobs(['builder-a']),
{Build('builder-a', 100): TryJobStatus('STARTED')})
def test_latest_try_jobs_started_build_buildbot_url(self):
git_cl = GitCL(MockHost())
git_cl.fetch_raw_try_job_results = lambda **_: [
{
'builder_name': 'builder-a',
'status': 'STARTED',
'result': None,
'url': 'http://build.chromium.org/master/builders/some-builder/builds/100',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/100',
],
'url': 'http://ci.chromium.org/b/123123123123123',
},
]
self.assertEqual(
......@@ -412,14 +413,20 @@ class GitCLTest(unittest.TestCase):
'status': 'COMPLETED',
'result': 'FAILURE',
'failure_reason': 'BUILD_FAILURE',
'url': 'http://ci.chromium.org/p/master/builder-a/100',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/100',
],
'url': 'http://ci.chromium.org/b/123123123123123123',
},
{
'builder_name': 'builder-b',
'status': 'COMPLETED',
'result': 'FAILURE',
'failure_reason': 'INFRA_FAILURE',
'url': 'http://ci.chromium.org/p/master/builder-b/200',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/200',
],
'url': 'http://ci.chromium.org/b/1293871928371923719',
},
]
self.assertEqual(
......@@ -436,7 +443,10 @@ class GitCLTest(unittest.TestCase):
'builder_name': 'builder-b',
'status': 'COMPLETED',
'result': 'SUCCESS',
'url': 'https://ci.chromium.org/buildbot/mymaster/builder-b/10',
'tags': [
'build_address:luci.chromium.try/chromium_presubmit/10',
],
'url': 'https://ci.chromium.org/b/123918239182739',
},
{
'builder_name': 'builder-b',
......
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