Skip to content

Commit

Permalink
Update CL description by adding CQ_EXTRA_TRYBOTS for Telemetry changes.
Browse files Browse the repository at this point in the history
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}
  • Loading branch information
vuppalapu authored and Commit bot committed Apr 27, 2015
1 parent aa4471e commit 3d3ed82
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
1 change: 1 addition & 0 deletions codereview.settings
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ GITCL_PREDCOMMIT: http://src.chromium.org/viewvc/trunk/tools/depot_tools/git-cl-
LINT_IGNORE_REGEX: webkit/api/.*
PROJECT: chromium
PENDING_REF_PREFIX: refs/pending/
RUN_POST_UPLOAD_HOOK: True
47 changes: 47 additions & 0 deletions tools/perf/PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import os
import re
import sys


Expand Down Expand Up @@ -76,3 +77,49 @@ def CheckChangeOnCommit(input_api, output_api):
report = []
report.extend(_CommonChecks(input_api, output_api))
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

0 comments on commit 3d3ed82

Please sign in to comment.