зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1381613 - Populate a repository-less index route for "trunk" repos; r=dustin
There are a few places where we walk commit ancestry looking for things attached to a specific revision. Because the repository name is attached to the index path and because a revision can exist in multiple repositories, we often have to perform N index lookups to find a result for a specific revision. This is inefficient. To facilitate faster index lookups by revision, we introduce a new route that doesn't contain the repository name. In theory, we should be able to do this globally - for all repos. However, the configuration of tasks can vary significantly by repo. So e.g. a linux64 build on "central" is sufficiently different from a linux64 build on "beta" or "release." For that reason, this commit takes the conservative approach and only defines a shared route for repositories with a similar configuration: the "trunk" repositories. MozReview-Commit-ID: 8rIgUbzW4eL --HG-- extra : rebase_source : 301ed36424e0c69c25e63121809afb96ca327edc extra : source : 543c503f745c89360398fd3207ddaea5c262a807
This commit is contained in:
Родитель
b743cc4898
Коммит
ecb4b6b396
|
@ -15,6 +15,7 @@ import os
|
||||||
import time
|
import time
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
|
from taskgraph.util.attributes import TRUNK_PROJECTS
|
||||||
from taskgraph.util.treeherder import split_symbol
|
from taskgraph.util.treeherder import split_symbol
|
||||||
from taskgraph.transforms.base import TransformSequence
|
from taskgraph.transforms.base import TransformSequence
|
||||||
from taskgraph.util.schema import validate_schema, Schema
|
from taskgraph.util.schema import validate_schema, Schema
|
||||||
|
@ -476,6 +477,12 @@ V2_ROUTE_TEMPLATES = [
|
||||||
"index.gecko.v2.{project}.revision.{head_rev}.{product}.{job-name}",
|
"index.gecko.v2.{project}.revision.{head_rev}.{product}.{job-name}",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# {central, inbound, autoland} write to a "trunk" index prefix. This facilitates
|
||||||
|
# walking of tasks with similar configurations.
|
||||||
|
V2_TRUNK_ROUTE_TEMPLATES = [
|
||||||
|
"index.gecko.v2.trunk.revision.{head_rev}.{product}.{job-name}",
|
||||||
|
]
|
||||||
|
|
||||||
V2_NIGHTLY_TEMPLATES = [
|
V2_NIGHTLY_TEMPLATES = [
|
||||||
"index.gecko.v2.{project}.nightly.latest.{product}.{job-name}",
|
"index.gecko.v2.{project}.nightly.latest.{product}.{job-name}",
|
||||||
"index.gecko.v2.{project}.nightly.{build_date}.revision.{head_rev}.{product}.{job-name}",
|
"index.gecko.v2.{project}.nightly.{build_date}.revision.{head_rev}.{product}.{job-name}",
|
||||||
|
@ -820,9 +827,17 @@ def add_generic_index_routes(config, task):
|
||||||
time.gmtime(config.params['build_date']))
|
time.gmtime(config.params['build_date']))
|
||||||
subs['product'] = index['product']
|
subs['product'] = index['product']
|
||||||
|
|
||||||
|
project = config.params.get('project')
|
||||||
|
|
||||||
for tpl in V2_ROUTE_TEMPLATES:
|
for tpl in V2_ROUTE_TEMPLATES:
|
||||||
routes.append(tpl.format(**subs))
|
routes.append(tpl.format(**subs))
|
||||||
|
|
||||||
|
# Additionally alias all tasks for "trunk" repos into a common
|
||||||
|
# namespace.
|
||||||
|
if project and project in TRUNK_PROJECTS:
|
||||||
|
for tpl in V2_TRUNK_ROUTE_TEMPLATES:
|
||||||
|
routes.append(tpl.format(**subs))
|
||||||
|
|
||||||
return task
|
return task
|
||||||
|
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче