Commit 3d3ed829 authored by prasadv's avatar prasadv Committed by Commit bot

Update CL description by adding CQ_EXTRA_TRYBOTS for Telemetry changes.

This CL adds a post upload hook to add extra try bots list to the CL description in order to run
Telemetry benchmarks on Perf trybots in addtion to CQ trybots if the CL
contains any changes to Telemetry benchmarks.

BUG=462581

Review URL: https://codereview.chromium.org/1060763002

Cr-Commit-Position: refs/heads/master@{#327150}
parent aa4471e8
...@@ -10,3 +10,4 @@ GITCL_PREDCOMMIT: http://src.chromium.org/viewvc/trunk/tools/depot_tools/git-cl- ...@@ -10,3 +10,4 @@ GITCL_PREDCOMMIT: http://src.chromium.org/viewvc/trunk/tools/depot_tools/git-cl-
LINT_IGNORE_REGEX: webkit/api/.* LINT_IGNORE_REGEX: webkit/api/.*
PROJECT: chromium PROJECT: chromium
PENDING_REF_PREFIX: refs/pending/ PENDING_REF_PREFIX: refs/pending/
RUN_POST_UPLOAD_HOOK: True
...@@ -9,6 +9,7 @@ for more details about the presubmit API built into depot_tools. ...@@ -9,6 +9,7 @@ for more details about the presubmit API built into depot_tools.
""" """
import os import os
import re
import sys import sys
...@@ -76,3 +77,49 @@ def CheckChangeOnCommit(input_api, output_api): ...@@ -76,3 +77,49 @@ def CheckChangeOnCommit(input_api, output_api):
report = [] report = []
report.extend(_CommonChecks(input_api, output_api)) report.extend(_CommonChecks(input_api, output_api))
return report return report
def _IsBenchmarksModified(change):
"""Checks whether CL contains any modification to Telemetry benchmarks."""
for affected_file in change.AffectedFiles():
affected_file_path = affected_file.LocalPath()
file_path, _ = os.path.splitext(affected_file_path)
if (os.path.join('tools', 'perf', 'benchmarks') in file_path or
os.path.join('tools', 'perf', 'measurements') in file_path):
return True
return False
def PostUploadHook(cl, change, output_api):
"""git cl upload will call this hook after the issue is created/modified.
This hook adds extra try bots list to the CL description in order to run
Telemetry benchmarks on Perf trybots in addtion to CQ trybots if the CL
contains any changes to Telemetry benchmarks.
"""
benchmarks_modified = _IsBenchmarksModified(change)
rietveld_obj = cl.RpcServer()
issue = cl.issue
original_description = rietveld_obj.get_description(issue)
if not benchmarks_modified or re.search(
r'^CQ_EXTRA_TRYBOTS=.*', original_description, re.M | re.I):
return []
results = []
bots = [
'linux_perf_bisect',
'mac_perf_bisect',
'win_perf_bisect',
'android_nexus5_perf_bisect'
]
bots = ['tryserver.chromium.perf:%s' % s for s in bots]
bots_string = ';'.join(bots)
description = original_description
description += '\nCQ_EXTRA_TRYBOTS=%s' % bots_string
results.append(output_api.PresubmitNotifyResult(
'Automatically added Perf trybots to run Telemetry benchmarks on CQ.'))
if description != original_description:
rietveld_obj.update_description(issue, description)
return results
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