Bug 1501759: [taskgraph] Add a beta-sim target; r=aki,RyanVM

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Tom Prince 2018-10-24 20:44:11 +00:00
parent a7548eb4fe
commit 5c9bcda5ed
2 changed files with 38 additions and 7 deletions

View File

@ -48,9 +48,6 @@ def filter_on_platforms(task, platforms):
def filter_release_tasks(task, parameters):
if not standard_filter(task, parameters):
return False
platform = task.attributes.get('build_platform')
if platform in (
# On beta, Nightly builds are already PGOs
@ -261,7 +258,8 @@ def target_tasks_mozilla_beta(full_task_graph, parameters, graph_config):
of builds and signing, but does not include beetmover or balrog jobs."""
return [l for l, t in full_task_graph.tasks.iteritems()
if filter_release_tasks(t, parameters)]
if filter_release_tasks(t, parameters)
and standard_filter(t, parameters)]
@_target_task('mozilla_release_tasks')
@ -271,7 +269,8 @@ def target_tasks_mozilla_release(full_task_graph, parameters, graph_config):
of builds and signing, but does not include beetmover or balrog jobs."""
return [l for l, t in full_task_graph.tasks.iteritems()
if filter_release_tasks(t, parameters)]
if filter_release_tasks(t, parameters)
and standard_filter(t, parameters)]
@_target_task('mozilla_esr60_tasks')
@ -284,6 +283,9 @@ def target_tasks_mozilla_esr60(full_task_graph, parameters, graph_config):
if not filter_release_tasks(task, parameters):
return False
if not standard_filter(task, parameters):
return False
platform = task.attributes.get('build_platform')
# Android is not built on esr.
@ -583,3 +585,20 @@ def target_tasks_staging_release(full_task_graph, parameters, graph_config):
return False
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
@_target_task('beta_simulation')
def target_tasks_beta_simulation(full_task_graph, parameters, graph_config):
"""
Select builds that would run on mozilla-beta.
"""
def filter_for_beta(task):
"""Filter tasks by project. Optionally enable nightlies."""
run_on_projects = set(task.attributes.get('run_on_projects', []))
return match_run_on_projects('mozilla-beta', run_on_projects)
return [l for l, t in full_task_graph.tasks.iteritems()
if filter_release_tasks(t, parameters)
and filter_out_cron(t, parameters)
and filter_for_beta(t)]

View File

@ -12,6 +12,11 @@ from mozilla_version.gecko import FirefoxVersion
from ..cli import BaseTryParser
from ..push import push_to_try, vcs
TARGET_TASKS = {
'staging': 'staging_release_builds',
'beta-sim': 'beta_simulation',
}
def read_file(path):
with open(path) as fh:
@ -40,12 +45,19 @@ class ReleaseParser(BaseTryParser):
'dest': 'limit_locales',
'help': "Don't build a limited number of locales in the staging release.",
}],
[['--tasks'],
{'choices': TARGET_TASKS.keys(),
'default': 'staging',
'help': "Which tasks to run on-push.",
}],
]
common_groups = ['push']
def run_try_release(
version, migrations=(), push=True, message='{msg}', limit_locales=True, **kwargs
version, migrations, limit_locales, tasks,
push=True, message='{msg}', **kwargs
):
if version.is_beta:
@ -66,7 +78,7 @@ def run_try_release(
task_config = {
'version': 2,
'parameters': {
'target_tasks_method': 'staging_release_builds',
'target_tasks_method': TARGET_TASKS[tasks],
'optimize_target_tasks': True,
'release_type': release_type,
},