Bug 1573208 - Part 2: Add --browsertime flag to Raptor test jobs. r=glandium

For now, this just:

- updates the TreeHerder symbol
- includes the `--browsertime` extra option

The actual test jobs will react to the `--browsertime` extra option
and add dependencies, etc, as appropriate.

Differential Revision: https://phabricator.services.mozilla.com/D41605

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Nick Alexander 2019-08-21 22:51:17 +00:00
parent 4b45d4c635
commit 49401b728f
6 changed files with 75 additions and 6 deletions

View File

@ -15,6 +15,20 @@ treeherder:
'py3': 'Python 3 unit tests'
'A': 'Android Gradle tests'
'Bpgo': 'Profile-guided optimization builds'
'Btime': 'Browsertime performance tests on Firefox'
'Btime-1proc': 'Browsertime performance tests on Firefox without e10s'
'Btime-fis': 'Browsertime performance tests on Firefox with fission enabled'
'Btime-Prof': 'Browsertime performance tests on Firefox with Gecko Profiling'
'Btime-Prof-1proc': 'Browsertime performance tests on Firefox with Gecko Profiling and without e10s'
'Btime-ChC': 'Browsertime performance tests on Google Chrome Canary'
'Btime-ChD': 'Browsertime performance tests on Google Chrome Dev'
'Btime-Cr': 'Browsertime performance tests on Google Chromium'
'Btime-P': 'Browsertime power tests on Firefox'
'Btime-P-1proc': 'Browsertime power tests on Firefox without e10s'
'Btime-fenix': 'Browsertime performance tests on Fenix'
'Btime-fennec': 'Browsertime performance tests on Fennec'
'Btime-fennec-1proc': 'Browsertime performance tests on Fennec without e10s'
'Btime-refbrow': 'Browsertime performance tests on the reference browser'
'Fetch': 'Fetch and store content'
'Fxfn-l': 'Firefox functional tests (local)'
'Fxfn-l-1proc': 'Firefox functional tests (local) without e10s'

View File

@ -121,6 +121,7 @@ try_task_config_schema = Schema({
Required('tasks'): [basestring],
Optional('templates'): {basestring: object},
Optional('disable-pgo'): bool,
Optional('browsertime'): bool,
})

View File

@ -713,6 +713,28 @@ def setup_raptor(config, tests):
yield test
@transforms.add
def setup_browsertime_flag(config, tests):
"""Optionally add `--browsertime` flag to Raptor pageload tests."""
browsertime_flag = config.params['try_task_config'].get('browsertime', False)
for test in tests:
if not browsertime_flag or test['suite'] != 'raptor':
yield test
continue
if test['treeherder-symbol'].startswith('Rap'):
# The Rap group is subdivided as Rap{-fenix,-refbrow,-fennec}(...),
# so `taskgraph.util.treeherder.replace_group` isn't appropriate.
test['treeherder-symbol'] = test['treeherder-symbol'].replace('Rap', 'Btime', 1)
extra_options = test.setdefault('mozharness', {}).setdefault('extra-options', [])
extra_options.append('--browsertime')
yield test
@transforms.add
def handle_artifact_prefix(config, tests):
"""Handle translating `artifact_prefix` appropriately"""

View File

@ -19,7 +19,16 @@ class ChooserParser(BaseTryParser):
name = 'chooser'
arguments = []
common_groups = ['push', 'task']
templates = ['artifact', 'env', 'rebuild', 'chemspill-prio', 'gecko-profile', 'disable-pgo']
templates = [
'artifact',
'browsertime',
'chemspill-prio',
'disable-pgo',
'env',
'gecko-profile',
'path',
'rebuild',
]
def run(update=False, query=None, try_config=None, full=False, parameters=None,

View File

@ -122,7 +122,14 @@ class FuzzyParser(BaseTryParser):
]
common_groups = ['push', 'task', 'preset']
templates = [
'artifact', 'path', 'env', 'rebuild', 'chemspill-prio', 'gecko-profile', 'disable-pgo',
'artifact',
'browsertime',
'chemspill-prio',
'disable-pgo',
'env',
'gecko-profile',
'path',
'rebuild',
]

View File

@ -220,6 +220,21 @@ class GeckoProfile(Template):
return {'gecko-profile': profile}
class Browsertime(TryConfig):
arguments = [
[['--browsertime'],
{'action': 'store_true',
'help': 'Use browsertime during Raptor tasks.',
}],
]
def try_config(self, browsertime, **kwargs):
if browsertime:
return {
'browsertime': True,
}
class DisablePgo(TryConfig):
arguments = [
@ -238,10 +253,11 @@ class DisablePgo(TryConfig):
all_templates = {
'artifact': Artifact,
'path': Path,
'env': Environment,
'rebuild': Rebuild,
'browsertime': Browsertime,
'chemspill-prio': ChemspillPrio,
'gecko-profile': GeckoProfile,
'disable-pgo': DisablePgo,
'env': Environment,
'gecko-profile': GeckoProfile,
'path': Path,
'rebuild': Rebuild,
}