Add more fields to try-results --json for WPT importer
Context: The WPT importer consumes the JSON produced by
git cl try-results is consumed and uses it to determine
when the CQ has passed (whether all non-experimental cq
jobs were successful) and where layout test results are
stored.
Added fields:
created_ts: This could be used to sort builds by time.
tags: Includes user_agent tag and experimental tag, as well as
experimental: whether the job is experimental
Bug: 792652
Change-Id: Ic6099a21b21db668b88b1a8e54aefd84529a2a91
Reviewed-on: https://chromium-review.googlesource.com/819573
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 7a634dd..70aec89 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -3175,50 +3175,87 @@
self.assertRegexpMatches(out.getvalue(), 'Landed as: .*deadbeef')
BUILDBUCKET_BUILDS_MAP = {
- '9000': {
- 'id': '9000',
- 'status': 'STARTED',
- 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/2',
- 'result_details_json': '{"properties": {}}',
- 'bucket': 'master.x.y',
- 'created_by': 'user:someone@chromium.org',
- 'created_ts': '147200002222000',
- 'parameters_json': '{"builder_name": "my-builder", "category": ""}',
- },
- '8000': {
- 'id': '8000',
- 'status': 'COMPLETED',
- 'result': 'FAILURE',
- 'failure_reason': 'BUILD_FAILURE',
- 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/1',
- 'result_details_json': '{"properties": {}}',
- 'bucket': 'master.x.y',
- 'created_by': 'user:someone@chromium.org',
- 'created_ts': '147200001111000',
- 'parameters_json': '{"builder_name": "my-builder", "category": ""}',
- },
- }
+ '9000': {
+ 'id': '9000',
+ 'bucket': 'master.x.y',
+ 'created_by': 'user:someone@chromium.org',
+ 'created_ts': '147200002222000',
+ 'experimental': False,
+ 'parameters_json': json.dumps({
+ 'builder_name': 'my-bot',
+ 'properties': {'category': 'cq'},
+ }),
+ 'status': 'STARTED',
+ 'tags': [
+ 'build_address:x.y/my-bot/2',
+ 'builder:my-bot',
+ 'experimental:false',
+ 'user_agent:cq',
+ ],
+ 'url': 'http://build.cr.org/p/x.y/builders/my-bot/builds/2',
+ },
+ '8000': {
+ 'id': '8000',
+ 'bucket': 'master.x.y',
+ 'created_by': 'user:someone@chromium.org',
+ 'created_ts': '147200001111000',
+ 'experimental': False,
+ 'failure_reason': 'BUILD_FAILURE',
+ 'parameters_json': json.dumps({
+ 'builder_name': 'my-bot',
+ 'properties': {'category': 'cq'},
+ }),
+ 'result_details_json': json.dumps({
+ 'properties': {'buildnumber': 1},
+ }),
+ 'result': 'FAILURE',
+ 'status': 'COMPLETED',
+ 'tags': [
+ 'build_address:x.y/my-bot/1',
+ 'builder:my-bot',
+ 'experimental:false',
+ 'user_agent:cq',
+ ],
+ 'url': 'http://build.cr.org/p/x.y/builders/my-bot/builds/1',
+ },
+ }
def test_write_try_results_json(self):
expected_output = [
- {
- 'buildbucket_id': '8000',
- 'bucket': 'master.x.y',
- 'builder_name': 'my-builder',
- 'status': 'COMPLETED',
- 'result': 'FAILURE',
- 'failure_reason': 'BUILD_FAILURE',
- 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/1',
- },
- {
- 'buildbucket_id': '9000',
- 'bucket': 'master.x.y',
- 'builder_name': 'my-builder',
- 'status': 'STARTED',
- 'result': None,
- 'failure_reason': None,
- 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/2',
- }
+ {
+ 'bucket': 'master.x.y',
+ 'buildbucket_id': '8000',
+ 'builder_name': 'my-bot',
+ 'created_ts': '147200001111000',
+ 'experimental': False,
+ 'failure_reason': 'BUILD_FAILURE',
+ 'result': 'FAILURE',
+ 'status': 'COMPLETED',
+ 'tags': [
+ 'build_address:x.y/my-bot/1',
+ 'builder:my-bot',
+ 'experimental:false',
+ 'user_agent:cq',
+ ],
+ 'url': 'http://build.cr.org/p/x.y/builders/my-bot/builds/1',
+ },
+ {
+ 'bucket': 'master.x.y',
+ 'buildbucket_id': '9000',
+ 'builder_name': 'my-bot',
+ 'created_ts': '147200002222000',
+ 'experimental': False,
+ 'failure_reason': None,
+ 'result': None,
+ 'status': 'STARTED',
+ 'tags': [
+ 'build_address:x.y/my-bot/2',
+ 'builder:my-bot',
+ 'experimental:false',
+ 'user_agent:cq',
+ ],
+ 'url': 'http://build.cr.org/p/x.y/builders/my-bot/builds/2',
+ },
]
self.calls = [(('write_json', 'output.json', expected_output), '')]
git_cl.write_try_results_json('output.json', self.BUILDBUCKET_BUILDS_MAP)