Bug 1774834 - Use vendored treeherder util r=ahal

Differential Revision: https://phabricator.services.mozilla.com/D149441
This commit is contained in:
Gabriel Bustamante 2022-06-23 15:25:10 +00:00
Родитель f29955e688
Коммит 3ab693b367
30 изменённых файлов: 112 добавлений и 283 удалений

Просмотреть файл

@ -26,5 +26,4 @@ subsuite = taskgraph
[test_util_runnable_jobs.py]
[test_util_schema.py]
[test_util_templates.py]
[test_util_treeherder.py]
[test_util_verify.py]

Просмотреть файл

@ -1,32 +0,0 @@
# 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/.
import unittest
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol, add_suffix
from mozunit import main
class TestSymbols(unittest.TestCase):
def test_split_no_group(self):
self.assertEqual(split_symbol("xy"), ("?", "xy"))
def test_split_with_group(self):
self.assertEqual(split_symbol("ab(xy)"), ("ab", "xy"))
def test_join_no_group(self):
self.assertEqual(join_symbol("?", "xy"), "xy")
def test_join_with_group(self):
self.assertEqual(join_symbol("ab", "xy"), "ab(xy)")
def test_add_suffix_no_group(self):
self.assertEqual(add_suffix("xy", 1), "xy1")
def test_add_suffix_with_group(self):
self.assertEqual(add_suffix("ab(xy)", 1), "ab(xy1)")
if __name__ == "__main__":
main()

Просмотреть файл

@ -8,16 +8,12 @@ Transform the per-locale balrog task into an actual task description.
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.schema import (
optionally_keyed_by,
resolve_keyed_by,
)
from gecko_taskgraph.util.treeherder import replace_group
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by
from taskgraph.util.treeherder import replace_group
from voluptuous import Optional
balrog_description_schema = schema.extend(
{
# unique label to describe this balrog task, defaults to balrog-{dep.label}

Просмотреть файл

@ -6,8 +6,6 @@ Transform the beetmover task into an actual task description.
"""
from voluptuous import Optional, Required
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.task import task_description_schema
@ -15,11 +13,11 @@ from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.scriptworker import (
generate_beetmover_artifact_map,
generate_beetmover_upstream_artifacts,
get_beetmover_bucket_scope,
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
from gecko_taskgraph.util.treeherder import replace_group
from taskgraph.util.treeherder import replace_group
from voluptuous import Optional, Required
transforms = TransformSequence()

Просмотреть файл

@ -9,6 +9,7 @@ Transform the checksums signing task into an actual task description.
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.beetmover import craft_release_properties
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.scriptworker import (
generate_beetmover_artifact_map,
@ -16,9 +17,8 @@ from gecko_taskgraph.util.scriptworker import (
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
from taskgraph.util.treeherder import replace_group
from voluptuous import Optional, Required
from gecko_taskgraph.util.treeherder import replace_group
from gecko_taskgraph.transforms.task import task_description_schema
beetmover_checksums_description_schema = schema.extend(
{

Просмотреть файл

@ -9,6 +9,7 @@ Transform release-beetmover-langpack-checksums into an actual task description.
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.beetmover import craft_release_properties
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.scriptworker import (
generate_beetmover_artifact_map,
@ -16,9 +17,8 @@ from gecko_taskgraph.util.scriptworker import (
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
from gecko_taskgraph.util.treeherder import inherit_treeherder_from_dep
from gecko_taskgraph.transforms.task import task_description_schema
from voluptuous import Required, Optional
from taskgraph.util.treeherder import inherit_treeherder_from_dep
from voluptuous import Optional, Required
beetmover_checksums_description_schema = schema.extend(
{

Просмотреть файл

@ -7,12 +7,10 @@ Transform the beetmover task into an actual task description.
import logging
from taskgraph.util.taskcluster import get_artifact_prefix
from voluptuous import Required, Optional
from gecko_taskgraph.loader.multi_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.beetmover import craft_release_properties
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.partials import (
get_balrog_platform_name,
@ -21,13 +19,14 @@ from gecko_taskgraph.util.partials import (
)
from gecko_taskgraph.util.scriptworker import (
generate_beetmover_artifact_map,
generate_beetmover_upstream_artifacts,
generate_beetmover_partials_artifact_map,
get_beetmover_bucket_scope,
generate_beetmover_upstream_artifacts,
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
from gecko_taskgraph.util.treeherder import replace_group, inherit_treeherder_from_dep
from gecko_taskgraph.transforms.task import task_description_schema
from taskgraph.util.taskcluster import get_artifact_prefix
from taskgraph.util.treeherder import inherit_treeherder_from_dep, replace_group
from voluptuous import Optional, Required
logger = logging.getLogger(__name__)

Просмотреть файл

@ -7,7 +7,7 @@ Transform the signing task into an actual task description.
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.treeherder import join_symbol
from taskgraph.util.treeherder import join_symbol
transforms = TransformSequence()

Просмотреть файл

@ -7,15 +7,14 @@ kind.
"""
import logging
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import RELEASE_PROJECTS, is_try, release_level
from gecko_taskgraph.util.schema import resolve_keyed_by
from gecko_taskgraph.util.treeherder import add_suffix
from gecko_taskgraph.util.workertypes import worker_type_implementation
from mozbuild.artifact_builds import JOB_CHOICES as ARTIFACT_JOBS
import logging
from taskgraph.util.treeherder import add_suffix
logger = logging.getLogger(__name__)

Просмотреть файл

@ -6,29 +6,19 @@
# it as task artifacts.
import attr
from mozbuild.shellutil import quote as shell_quote
import os
import re
from voluptuous import (
Optional,
Required,
Extra,
Any,
)
from mozpack import path as mozpath
import attr
import gecko_taskgraph
from mozbuild.shellutil import quote as shell_quote
from mozpack import path as mozpath
from taskgraph.util.treeherder import join_symbol
from voluptuous import Any, Extra, Optional, Required
from .base import TransformSequence
from ..util.cached_tasks import add_optimization
from ..util.schema import Schema, validate_schema
from ..util.treeherder import join_symbol
from .base import TransformSequence
CACHE_TYPE = "content.v1"

Просмотреть файл

@ -9,28 +9,23 @@ Do transforms specific to l10n kind
import copy
import json
from mozbuild.chunkify import chunkify
from taskgraph.util.taskcluster import get_artifact_prefix
from voluptuous import (
Any,
Optional,
Required,
)
from gecko_taskgraph.loader.multi_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.job import job_description_schema
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import (
copy_attributes_from_dependent_job,
task_name,
)
from gecko_taskgraph.util.schema import (
optionally_keyed_by,
resolve_keyed_by,
taskref_or_string,
)
from gecko_taskgraph.util.attributes import (
copy_attributes_from_dependent_job,
task_name,
)
from gecko_taskgraph.util.treeherder import add_suffix
from gecko_taskgraph.transforms.job import job_description_schema
from gecko_taskgraph.transforms.task import task_description_schema
from mozbuild.chunkify import chunkify
from taskgraph.util.taskcluster import get_artifact_prefix
from taskgraph.util.treeherder import add_suffix
from voluptuous import Any, Optional, Required
def _by_platform(arg):

Просмотреть файл

@ -5,12 +5,10 @@
Transform the mac notarization poller task into an actual task description.
"""
from taskgraph.util.taskcluster import get_artifact_url
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.treeherder import add_suffix, join_symbol
from taskgraph.util.taskcluster import get_artifact_url
from taskgraph.util.treeherder import add_suffix, join_symbol
transforms = TransformSequence()

Просмотреть файл

@ -5,22 +5,18 @@
Transform the {partials,mar}-signing task into an actual task description.
"""
import logging
import os
from taskgraph.util.taskcluster import get_artifact_prefix
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import (
copy_attributes_from_dependent_job,
sorted_unique_list,
)
from gecko_taskgraph.util.scriptworker import (
get_signing_cert_scope_per_platform,
)
from gecko_taskgraph.util.partials import get_partials_artifacts_from_params
from gecko_taskgraph.util.treeherder import join_symbol, inherit_treeherder_from_dep
import logging
from gecko_taskgraph.util.scriptworker import get_signing_cert_scope_per_platform
from taskgraph.util.taskcluster import get_artifact_prefix
from taskgraph.util.treeherder import inherit_treeherder_from_dep, join_symbol
logger = logging.getLogger(__name__)

Просмотреть файл

@ -8,10 +8,10 @@ Transform the repackage signing task into an actual task description.
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.scriptworker import get_signing_cert_scope_per_platform
from gecko_taskgraph.util.treeherder import inherit_treeherder_from_dep
from gecko_taskgraph.transforms.task import task_description_schema
from taskgraph.util.treeherder import inherit_treeherder_from_dep
from voluptuous import Optional
transforms = TransformSequence()

Просмотреть файл

@ -5,7 +5,7 @@
Transform the partials task into an actual task description.
"""
from taskgraph.util.taskcluster import get_artifact_prefix
import logging
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import (
@ -14,9 +14,8 @@ from gecko_taskgraph.util.attributes import (
)
from gecko_taskgraph.util.partials import get_builds
from gecko_taskgraph.util.platforms import architecture
from gecko_taskgraph.util.treeherder import inherit_treeherder_from_dep
import logging
from taskgraph.util.taskcluster import get_artifact_prefix
from taskgraph.util.treeherder import inherit_treeherder_from_dep
logger = logging.getLogger(__name__)

Просмотреть файл

@ -5,20 +5,14 @@ This transform passes options from `mach perftest` to the corresponding task.
"""
import json
from copy import deepcopy
from datetime import date, timedelta
import json
from voluptuous import (
Any,
Optional,
Extra,
)
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by, Schema
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol
from gecko_taskgraph.util.schema import Schema, optionally_keyed_by, resolve_keyed_by
from taskgraph.util.treeherder import join_symbol, split_symbol
from voluptuous import Any, Extra, Optional
transforms = TransformSequence()

Просмотреть файл

@ -6,26 +6,26 @@ Transform the beetmover task into an actual task description.
"""
import copy
import logging
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.beetmover import craft_release_properties
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import (
copy_attributes_from_dependent_job,
release_level,
)
from gecko_taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by
from gecko_taskgraph.util.scriptworker import (
get_beetmover_bucket_scope,
get_beetmover_action_scope,
generate_beetmover_upstream_artifacts,
generate_beetmover_artifact_map,
generate_beetmover_upstream_artifacts,
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
from gecko_taskgraph.util.treeherder import inherit_treeherder_from_dep
from gecko_taskgraph.transforms.task import task_description_schema
from voluptuous import Required, Optional
import logging
import copy
from taskgraph.util.treeherder import inherit_treeherder_from_dep
from voluptuous import Optional, Required
logger = logging.getLogger(__name__)

Просмотреть файл

@ -8,13 +8,13 @@ Transform the release-sign-and-push task into an actual task description.
from gecko_taskgraph.loader.single_dep import schema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.attributes import (
copy_attributes_from_dependent_job,
release_level,
)
from gecko_taskgraph.util.schema import resolve_keyed_by, optionally_keyed_by
from gecko_taskgraph.util.treeherder import inherit_treeherder_from_dep
from gecko_taskgraph.transforms.task import task_description_schema
from gecko_taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by
from taskgraph.util.treeherder import inherit_treeherder_from_dep
from voluptuous import Any, Required
transforms = TransformSequence()

Просмотреть файл

@ -7,10 +7,10 @@ Adjust dependencies to not exceed MAX_DEPENDENCIES
from copy import deepcopy
from gecko_taskgraph.transforms.base import TransformSequence
import gecko_taskgraph.transforms.release_deps as release_deps
from gecko_taskgraph.util.treeherder import add_suffix
from gecko_taskgraph import MAX_DEPENDENCIES
from gecko_taskgraph.transforms.base import TransformSequence
from taskgraph.util.treeherder import add_suffix
transforms = TransformSequence()

Просмотреть файл

@ -11,7 +11,7 @@ from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
from gecko_taskgraph.util.signed_artifacts import (
generate_specifications_of_artifacts_to_sign,
)
from gecko_taskgraph.util.treeherder import join_symbol
from taskgraph.util.treeherder import join_symbol
transforms = TransformSequence()

Просмотреть файл

@ -10,24 +10,14 @@ treeherder configuration and attributes for that platform.
import copy
import os
from taskgraph.util.attributes import keymatch
from voluptuous import (
Any,
Extra,
Optional,
Required,
)
import gecko_taskgraph
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.job import job_description_schema
from gecko_taskgraph.util.hg import get_json_automationrelevance
from gecko_taskgraph.util.schema import (
resolve_keyed_by,
optionally_keyed_by,
Schema,
)
from gecko_taskgraph.util.treeherder import join_symbol, split_symbol
from gecko_taskgraph.util.schema import Schema, optionally_keyed_by, resolve_keyed_by
from taskgraph.util.attributes import keymatch
from taskgraph.util.treeherder import join_symbol, split_symbol
from voluptuous import Any, Extra, Optional, Required
source_test_description_schema = Schema(
{

Просмотреть файл

@ -16,31 +16,28 @@ import time
from copy import deepcopy
import attr
from mozbuild.util import memoize
from taskgraph.util.keyed_by import evaluate_keyed_by
from taskgraph.util.time import value_of
from voluptuous import Any, Required, Optional, Extra, Match, All, NotIn
from gecko_taskgraph import GECKO, MAX_DEPENDENCIES
from gecko_taskgraph.optimize.schema import OptimizationSchema
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import TRUNK_PROJECTS, is_try, release_level
from gecko_taskgraph.util.hash import hash_path
from gecko_taskgraph.util.treeherder import split_symbol
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.partners import get_partners_to_be_published
from gecko_taskgraph.util.schema import (
validate_schema,
Schema,
optionally_keyed_by,
resolve_keyed_by,
taskref_or_string,
validate_schema,
)
from gecko_taskgraph.optimize.schema import OptimizationSchema
from gecko_taskgraph.util.partners import get_partners_to_be_published
from gecko_taskgraph.util.scriptworker import (
BALROG_ACTIONS,
get_release_config,
)
from gecko_taskgraph.util.scriptworker import BALROG_ACTIONS, get_release_config
from gecko_taskgraph.util.signed_artifacts import get_signed_artifacts
from gecko_taskgraph.util.workertypes import worker_type_implementation
from gecko_taskgraph import GECKO, MAX_DEPENDENCIES
from mozbuild.util import memoize
from taskgraph.util.keyed_by import evaluate_keyed_by
from taskgraph.util.time import value_of
from taskgraph.util.treeherder import split_symbol
from voluptuous import All, Any, Extra, Match, NotIn, Optional, Required
from ..util import docker as dockerutil
from ..util.workertypes import get_worker_type

Просмотреть файл

@ -3,21 +3,19 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import copy
from taskgraph.util.attributes import keymatch
import gecko_taskgraph
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import is_try
from gecko_taskgraph.util.chunking import (
DefaultLoader,
chunk_manifests,
get_manifest_loader,
get_runtimes,
guess_mozinfo_from_task,
DefaultLoader,
)
from gecko_taskgraph.util.perfile import perfile_number_of_chunks
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol
from taskgraph.util.attributes import keymatch
from taskgraph.util.treeherder import join_symbol, split_symbol
DYNAMIC_CHUNK_DURATION = 20 * 60 # seconds
"""The approximate time each test chunk should take to run."""

Просмотреть файл

@ -6,24 +6,16 @@ import hashlib
import json
import re
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.test.variant import TEST_VARIANTS
from gecko_taskgraph.util.platforms import platform_family
from gecko_taskgraph.util.schema import Schema, resolve_keyed_by
from mozbuild.schedules import INCLUSIVE_COMPONENTS
from mozbuild.util import ReadOnlyDict
from taskgraph.util.attributes import keymatch
from taskgraph.util.keyed_by import evaluate_keyed_by
from taskgraph.util.taskcluster import get_artifact_path, get_index_url
from voluptuous import (
Any,
Optional,
Required,
)
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.test.variant import TEST_VARIANTS
from gecko_taskgraph.util.platforms import platform_family
from gecko_taskgraph.util.schema import (
resolve_keyed_by,
Schema,
)
from voluptuous import Any, Optional, Required
transforms = TransformSequence()
@ -109,7 +101,7 @@ def setup_browsertime_flag(config, tasks):
if task["treeherder-symbol"].startswith("Rap"):
# The Rap group is subdivided as Rap{-fenix,-refbrow(...),
# so `gecko_taskgraph.util.treeherder.replace_group` isn't appropriate.
# so `taskgraph.util.treeherder.replace_group` isn't appropriate.
task["treeherder-symbol"] = task["treeherder-symbol"].replace(
"Rap", "Btime", 1
)

Просмотреть файл

@ -5,16 +5,11 @@
from copy import deepcopy
from voluptuous import (
Optional,
Required,
Extra,
)
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.transforms.test import test_description_schema
from gecko_taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by, Schema
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol
from gecko_taskgraph.util.schema import Schema, optionally_keyed_by, resolve_keyed_by
from taskgraph.util.treeherder import join_symbol, split_symbol
from voluptuous import Extra, Optional, Required
transforms = TransformSequence()
task_transforms = TransformSequence()

Просмотреть файл

@ -3,22 +3,14 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import copy
import jsone
from taskgraph.util.yaml import load_yaml
from voluptuous import (
Any,
Optional,
Required,
)
import gecko_taskgraph
import jsone
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.schema import Schema, validate_schema
from gecko_taskgraph.util.templates import merge
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol
from gecko_taskgraph.util.schema import (
validate_schema,
Schema,
)
from taskgraph.util.treeherder import join_symbol, split_symbol
from taskgraph.util.yaml import load_yaml
from voluptuous import Any, Optional, Required
transforms = TransformSequence()

Просмотреть файл

@ -10,7 +10,7 @@ from copy import deepcopy
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import task_name
from gecko_taskgraph.util.treeherder import add_suffix, inherit_treeherder_from_dep
from taskgraph.util.treeherder import add_suffix, inherit_treeherder_from_dep
transforms = TransformSequence()

Просмотреть файл

@ -7,13 +7,15 @@ taskcluster/ci/upload-symbols/job-template.yml into an actual task description.
"""
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import RELEASE_PROJECTS
from gecko_taskgraph.util.treeherder import join_symbol, inherit_treeherder_from_dep
from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job
import logging
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.attributes import (
RELEASE_PROJECTS,
copy_attributes_from_dependent_job,
)
from taskgraph.util.treeherder import inherit_treeherder_from_dep, join_symbol
logger = logging.getLogger(__name__)
transforms = TransformSequence()

Просмотреть файл

@ -1,64 +0,0 @@
# 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/.
import re
_JOINED_SYMBOL_RE = re.compile(r"([^(]*)\(([^)]*)\)$")
def split_symbol(treeherder_symbol):
"""Split a symbol expressed as grp(sym) into its two parts. If no group is
given, the returned group is '?'"""
groupSymbol = "?"
symbol = treeherder_symbol
if "(" in symbol:
match = _JOINED_SYMBOL_RE.match(symbol)
if match:
groupSymbol, symbol = match.groups()
else:
raise Exception(f"`{symbol}` is not a valid treeherder symbol.")
return groupSymbol, symbol
def join_symbol(group, symbol):
"""Perform the reverse of split_symbol, combining the given group and
symbol. If the group is '?', then it is omitted."""
if group == "?":
return symbol
return f"{group}({symbol})"
def add_suffix(treeherder_symbol, suffix):
"""Add a suffix to a treeherder symbol that may contain a group."""
group, symbol = split_symbol(treeherder_symbol)
symbol += str(suffix)
return join_symbol(group, symbol)
def replace_group(treeherder_symbol, new_group):
"""Add a suffix to a treeherder symbol that may contain a group."""
_, symbol = split_symbol(treeherder_symbol)
return join_symbol(new_group, symbol)
def inherit_treeherder_from_dep(job, dep_job):
"""Inherit treeherder defaults from dep_job"""
treeherder = job.get("treeherder", {})
dep_th_platform = (
dep_job.task.get("extra", {})
.get("treeherder", {})
.get("machine", {})
.get("platform", "")
)
dep_th_collection = list(
dep_job.task.get("extra", {}).get("treeherder", {}).get("collection", {}).keys()
)[0]
treeherder.setdefault("platform", f"{dep_th_platform}/{dep_th_collection}")
treeherder.setdefault(
"tier", dep_job.task.get("extra", {}).get("treeherder", {}).get("tier", 1)
)
# Does not set symbol
treeherder.setdefault("kind", "build")
return treeherder

Просмотреть файл

@ -4,23 +4,19 @@
import logging
import re
import os
import re
import sys
import attr
from taskgraph.util.verify import (
VerificationSequence,
)
from gecko_taskgraph import GECKO
from gecko_taskgraph.util.attributes import (
RELEASE_PROJECTS,
ALL_PROJECTS,
RELEASE_PROJECTS,
RUN_ON_PROJECT_ALIASES,
)
from gecko_taskgraph.util.treeherder import join_symbol
from taskgraph.util.treeherder import join_symbol
from taskgraph.util.verify import VerificationSequence
logger = logging.getLogger(__name__)
doc_base_path = os.path.join(GECKO, "taskcluster", "docs")