mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
121
taskcluster/taskgraph/target_tasks.py
Normal file
121
taskcluster/taskgraph/target_tasks.py
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
from taskgraph import try_option_syntax
|
||||
|
||||
INTEGRATION_PROJECTS = set([
|
||||
'mozilla-inbound',
|
||||
'autoland',
|
||||
])
|
||||
|
||||
RELEASE_PROJECTS = set([
|
||||
'mozilla-central',
|
||||
'mozilla-aurora',
|
||||
'mozilla-beta',
|
||||
'mozilla-release',
|
||||
'mozilla-esr52',
|
||||
])
|
||||
|
||||
_target_task_methods = {}
|
||||
|
||||
|
||||
def _target_task(name):
|
||||
def wrap(func):
|
||||
_target_task_methods[name] = func
|
||||
return func
|
||||
return wrap
|
||||
|
||||
|
||||
def get_method(method):
|
||||
"""Get a target_task_method to pass to a TaskGraphGenerator."""
|
||||
return _target_task_methods[method]
|
||||
|
||||
|
||||
@_target_task('try_option_syntax')
|
||||
def target_tasks_try_option_syntax(full_task_graph, parameters):
|
||||
"""Generate a list of target tasks based on try syntax in
|
||||
parameters['message'] and, for context, the full task graph."""
|
||||
options = try_option_syntax.TryOptionSyntax(parameters['message'], full_task_graph)
|
||||
target_tasks_labels = [t.label for t in full_task_graph.tasks.itervalues()
|
||||
if options.task_matches(t.attributes)]
|
||||
|
||||
# If the developer wants test jobs to be rebuilt N times we add that value here
|
||||
if int(options.trigger_tests) > 1:
|
||||
for l in target_tasks_labels:
|
||||
task = full_task_graph[l]
|
||||
if 'unittest_suite' in task.attributes:
|
||||
task.attributes['task_duplicates'] = options.trigger_tests
|
||||
|
||||
# Add notifications here as well
|
||||
if options.notifications:
|
||||
for task in full_task_graph:
|
||||
owner = parameters.get('owner')
|
||||
routes = task.task.setdefault('routes', [])
|
||||
if options.notifications == 'all':
|
||||
routes.append("notify.email.{}.on-any".format(owner))
|
||||
elif options.notifications == 'failure':
|
||||
routes.append("notify.email.{}.on-failed".format(owner))
|
||||
routes.append("notify.email.{}.on-exception".format(owner))
|
||||
|
||||
return target_tasks_labels
|
||||
|
||||
|
||||
@_target_task('default')
|
||||
def target_tasks_default(full_task_graph, parameters):
|
||||
"""Target the tasks which have indicated they should be run on this project
|
||||
via the `run_on_projects` attributes."""
|
||||
def filter(task):
|
||||
run_on_projects = set(t.attributes.get('run_on_projects', []))
|
||||
if 'all' in run_on_projects:
|
||||
return True
|
||||
project = parameters['project']
|
||||
if 'integration' in run_on_projects:
|
||||
if project in INTEGRATION_PROJECTS:
|
||||
return True
|
||||
if 'release' in run_on_projects:
|
||||
if project in RELEASE_PROJECTS:
|
||||
return True
|
||||
return project in run_on_projects
|
||||
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
|
||||
|
||||
|
||||
@_target_task('ash_tasks')
|
||||
def target_tasks_ash(full_task_graph, parameters):
|
||||
"""Target tasks that only run on the ash branch."""
|
||||
def filter(task):
|
||||
platform = task.attributes.get('build_platform')
|
||||
# only select platforms
|
||||
if platform not in ('linux64', 'linux64-asan', 'linux64-pgo'):
|
||||
return False
|
||||
# and none of this linux64-asan/debug stuff
|
||||
if platform == 'linux64-asan' and task.attributes['build_type'] == 'debug':
|
||||
return False
|
||||
# no non-et10s tests
|
||||
if task.attributes.get('unittest_suite') or task.attributes.get('talos_siute'):
|
||||
if not task.attributes.get('e10s'):
|
||||
return False
|
||||
# don't upload symbols
|
||||
if task.attributes['kind'] == 'upload-symbols':
|
||||
return False
|
||||
return True
|
||||
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
|
||||
|
||||
|
||||
@_target_task('cedar_tasks')
|
||||
def target_tasks_cedar(full_task_graph, parameters):
|
||||
"""Target tasks that only run on the cedar branch."""
|
||||
def filter(task):
|
||||
platform = task.attributes.get('build_platform')
|
||||
# only select platforms
|
||||
if platform not in ['linux64']:
|
||||
return False
|
||||
if task.attributes.get('unittest_suite'):
|
||||
if not (task.attributes['unittest_suite'].startswith('mochitest')
|
||||
or 'xpcshell' in task.attributes['unittest_suite']):
|
||||
return False
|
||||
return True
|
||||
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
|
||||
Loading…
Add table
Add a link
Reference in a new issue