icecat: add release icecat-140.8.0-2 for aramo
This commit is contained in:
parent
d9a6c0aa96
commit
d570f39e11
616 changed files with 39955 additions and 33937 deletions
|
|
@ -29,9 +29,9 @@ CONTEXTS_DIR = "docker-contexts"
|
|||
DIGEST_RE = re.compile("^[0-9a-f]{64}$")
|
||||
|
||||
IMAGE_BUILDER_IMAGE = (
|
||||
"mozillareleases/image_builder:5.0.0"
|
||||
"mozillareleases/image_builder:5.1.0"
|
||||
"@sha256:"
|
||||
"e510a9a9b80385f71c112d61b2f2053da625aff2b6d430411ac42e424c58953f"
|
||||
"7fe70dcedefffffa03237ba5d456d42e0d7461de066db3f7a7c280a104869cd5"
|
||||
)
|
||||
|
||||
transforms = TransformSequence()
|
||||
|
|
@ -169,9 +169,6 @@ def fill_template(config, tasks):
|
|||
# FIXME: We aren't currently propagating the exit code
|
||||
},
|
||||
}
|
||||
# Retry for 'funsize-update-generator' if exit status code is -1
|
||||
if image_name in ["funsize-update-generator"]:
|
||||
taskdesc["worker"]["retry-exit-status"] = [-1]
|
||||
|
||||
worker = taskdesc["worker"]
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
# 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 taskgraph.transforms.base import TransformSequence
|
||||
from taskgraph.util.schema import resolve_keyed_by
|
||||
|
||||
from gecko_taskgraph.util.attributes import release_level
|
||||
|
||||
transforms = TransformSequence()
|
||||
|
||||
|
||||
@transforms.add
|
||||
def make_task_description(config, jobs):
|
||||
merge_config = config.params.get("merge_config", {})
|
||||
merge_automation_id = merge_config.get("merge-automation-id")
|
||||
|
||||
if not merge_automation_id:
|
||||
return
|
||||
|
||||
for job in jobs:
|
||||
resolve_keyed_by(
|
||||
job,
|
||||
"scopes",
|
||||
item_name=job["name"],
|
||||
**{"release-level": release_level(config.params)},
|
||||
)
|
||||
|
||||
job["worker"]["merge-automation-id"] = merge_automation_id
|
||||
|
||||
yield job
|
||||
|
|
@ -1307,6 +1307,18 @@ def build_ship_it_shipped_payload(config, task, task_def):
|
|||
task_def["payload"] = {"release_name": worker["release-name"]}
|
||||
|
||||
|
||||
@payload_builder(
|
||||
"shipit-merged",
|
||||
schema={
|
||||
Required("merge-automation-id"): int,
|
||||
},
|
||||
)
|
||||
def build_ship_it_merged_payload(config, task, task_def):
|
||||
worker = task["worker"]
|
||||
|
||||
task_def["payload"] = {"automation_id": worker["merge-automation-id"]}
|
||||
|
||||
|
||||
@payload_builder(
|
||||
"shipit-maybe-release",
|
||||
schema={
|
||||
|
|
|
|||
231
icecat/taskcluster/gecko_taskgraph/transforms/update_test.py
Normal file
231
icecat/taskcluster/gecko_taskgraph/transforms/update_test.py
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
# 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/.
|
||||
"""
|
||||
Transform the update-test suite to parametrize by locale, source version, machine
|
||||
"""
|
||||
|
||||
from enum import Enum
|
||||
from pathlib import Path
|
||||
|
||||
from taskgraph.transforms.base import TransformSequence
|
||||
from taskgraph.util.copy import deepcopy
|
||||
from taskgraph.util.schema import resolve_keyed_by
|
||||
from typing_extensions import final
|
||||
|
||||
from gecko_taskgraph import GECKO
|
||||
from gecko_taskgraph.util.attributes import is_try, task_name
|
||||
|
||||
|
||||
@final
|
||||
class ReleaseType(Enum):
|
||||
"""Release type"""
|
||||
|
||||
release = 0
|
||||
beta = 1
|
||||
esr = 2
|
||||
other = 3
|
||||
|
||||
|
||||
transforms = TransformSequence()
|
||||
|
||||
APPLICATIONS = ["fx"]
|
||||
|
||||
PLATFORM_TO_DOCKER = {
|
||||
"linux2404-64-shippable": "ubuntu2404-test",
|
||||
}
|
||||
|
||||
SHIPPED_LOCALES_FILE_PATH = Path(GECKO) / "browser/locales/shipped-locales"
|
||||
|
||||
TOP_LOCALES = [
|
||||
"en-US",
|
||||
"zh-CN",
|
||||
"de",
|
||||
"fr",
|
||||
"it",
|
||||
"es-ES",
|
||||
"pt-BR",
|
||||
"ru",
|
||||
"pl",
|
||||
]
|
||||
|
||||
BASE_TYPE_COMMAND = "./mach update-test"
|
||||
|
||||
UPDATE_ARTIFACT_NAME = "public/update-test"
|
||||
|
||||
DEFAULT_VERSIONS_BACK = 3
|
||||
|
||||
ESR_SUPPORT_CUTOFF = 140
|
||||
|
||||
|
||||
def infix_treeherder_symbol(symbol, infix):
|
||||
head, tail = symbol.split("(", 1)
|
||||
if infix.startswith("-"):
|
||||
infix = infix[1:]
|
||||
return f"{head}({tail[:-1]}-{infix})"
|
||||
|
||||
|
||||
@transforms.add
|
||||
def set_task_configuration(config, tasks):
|
||||
release_type = ReleaseType.release
|
||||
if config.params["release_type"] == "beta":
|
||||
release_type = ReleaseType.beta
|
||||
elif config.params["release_type"].startswith("esr"):
|
||||
esr_version = int(config.params["release_type"].split("esr")[1])
|
||||
release_type = ReleaseType.esr
|
||||
if esr_version < ESR_SUPPORT_CUTOFF:
|
||||
yield None
|
||||
|
||||
config_tasks = {}
|
||||
for dep in config.kind_dependencies_tasks.values():
|
||||
if "update-verify-config" in dep.kind:
|
||||
config_tasks[task_name(dep)] = dep
|
||||
|
||||
for task in tasks:
|
||||
for platform in task["test-platforms"]:
|
||||
this_task = deepcopy(task)
|
||||
if config_tasks:
|
||||
if "linux" in platform:
|
||||
config_task = config_tasks["icecat-linux64"]
|
||||
elif "win" in platform:
|
||||
config_task = config_tasks["icecat-win64"]
|
||||
elif "osx" in platform:
|
||||
config_task = config_tasks["icecat-macosx64"]
|
||||
this_task.setdefault("fetches", {})[config_task.label] = [
|
||||
"update-verify.cfg",
|
||||
]
|
||||
if "linux" in platform:
|
||||
this_task["worker"]["docker-image"] = {}
|
||||
this_task["worker"]["docker-image"]["in-tree"] = PLATFORM_TO_DOCKER[
|
||||
platform
|
||||
]
|
||||
|
||||
this_task.setdefault("attributes", {})
|
||||
this_task["attributes"]["build_platform"] = get_build_platform(platform)
|
||||
name_segments = this_task["name"].split("-")
|
||||
this_task["name"] = "-".join([platform, *name_segments[2:]])
|
||||
this_task["description"] = f"Test updates on {platform}"
|
||||
this_task["treeherder"]["platform"] = f"{platform}/opt"
|
||||
this_task["run"]["cwd"] = "{checkout}"
|
||||
del this_task["test-platforms"]
|
||||
|
||||
if this_task["shipping-product"] == "icecat":
|
||||
product_channel = release_type.name.lower()
|
||||
if this_task["shipping-phase"] == "promote":
|
||||
update_channel = "-localtest"
|
||||
elif this_task["shipping-phase"] == "push":
|
||||
update_channel = "-cdntest"
|
||||
else:
|
||||
raise OSError("Expected promote or push shipping-phase.")
|
||||
|
||||
if this_task["shipping-phase"] != "promote":
|
||||
this_task["treeherder"]["symbol"] = infix_treeherder_symbol(
|
||||
this_task["treeherder"]["symbol"],
|
||||
this_task["shipping-phase"][:6],
|
||||
)
|
||||
if release_type != ReleaseType.release:
|
||||
this_task["name"] = this_task["name"] + f"-{product_channel}"
|
||||
this_task["run"]["command"] = (
|
||||
this_task["run"]["command"]
|
||||
+ f" --channel {product_channel}{update_channel}"
|
||||
)
|
||||
|
||||
if release_type == ReleaseType.esr:
|
||||
this_task["run"]["command"] = (
|
||||
this_task["run"]["command"] + f" --esr-version {esr_version}"
|
||||
)
|
||||
|
||||
if is_try(config.params):
|
||||
this_task["run"]["command"] = (
|
||||
this_task["run"]["command"] + " --use-balrog-staging"
|
||||
)
|
||||
this_task["worker"]["env"]["BALROG_STAGING"] = "1"
|
||||
this_task["name"] = this_task["name"].replace("linux-docker-", "")
|
||||
this_task["index"]["job-name"] = "update-test-" + this_task["name"]
|
||||
|
||||
resolve_keyed_by(
|
||||
item=this_task,
|
||||
field="worker-type",
|
||||
item_name=this_task["name"],
|
||||
**{"test-platform": platform},
|
||||
)
|
||||
|
||||
for app in APPLICATIONS:
|
||||
if f"-{app}" in this_task["name"]:
|
||||
break
|
||||
|
||||
if f"{app}-" in this_task["name"]:
|
||||
(_, infix) = this_task["name"].split(app)
|
||||
this_task["treeherder"]["symbol"] = infix_treeherder_symbol(
|
||||
this_task["treeherder"]["symbol"], infix
|
||||
)
|
||||
yield this_task
|
||||
|
||||
|
||||
@transforms.add
|
||||
def parametrize_by_locale(config, tasks):
|
||||
with open(SHIPPED_LOCALES_FILE_PATH) as f:
|
||||
shipped_locales = f.read().split()
|
||||
for task in tasks:
|
||||
print(f"===task: {task}===")
|
||||
if "locale" not in task.get("name"):
|
||||
yield task
|
||||
continue
|
||||
for locale in TOP_LOCALES:
|
||||
if locale not in shipped_locales:
|
||||
continue
|
||||
this_task = deepcopy(task)
|
||||
this_task["run"]["command"] = (
|
||||
this_task["run"]["command"] + f" --source-locale {locale}"
|
||||
)
|
||||
this_task["description"] = (
|
||||
f"{this_task['description']}, locale coverage: {locale}"
|
||||
)
|
||||
this_task["name"] = this_task["name"].replace("locale", locale)
|
||||
this_task["index"][
|
||||
"job-name"
|
||||
] = f"{this_task['index']['job-name']}-{locale}"
|
||||
this_task["treeherder"]["symbol"] = infix_treeherder_symbol(
|
||||
this_task["treeherder"]["symbol"], locale.replace("-", "")
|
||||
)
|
||||
yield this_task
|
||||
|
||||
|
||||
@transforms.add
|
||||
def parametrize_by_source_version(config, tasks):
|
||||
for task in tasks:
|
||||
if "source-version" not in task.get("name"):
|
||||
yield task
|
||||
continue
|
||||
if "-esr" in task.get("name"):
|
||||
yield task
|
||||
continue
|
||||
# NB: We actually want source_versions_back = 0, because it gives us oldest usable ver
|
||||
for v in range(5):
|
||||
# avoid tasks with different names, same defs
|
||||
if v == DEFAULT_VERSIONS_BACK:
|
||||
continue
|
||||
this_task = deepcopy(task)
|
||||
this_task["run"]["command"] = (
|
||||
this_task["run"]["command"] + f" --source-versions-back {v}"
|
||||
)
|
||||
description_tag = (
|
||||
" from 3 major versions back" if v == 0 else f" from {v} releases back"
|
||||
)
|
||||
this_task["description"] = this_task["description"] + description_tag
|
||||
ago_tag = "-from-oldest" if v == 0 else f"-from-{v}-ago"
|
||||
this_task["name"] = this_task["name"].replace("-source-version", ago_tag)
|
||||
this_task["index"]["job-name"] = this_task["index"]["job-name"] + ago_tag
|
||||
this_task["treeherder"]["symbol"] = infix_treeherder_symbol(
|
||||
this_task["treeherder"]["symbol"], "oldst" if v == 0 else f"bk{v}"
|
||||
)
|
||||
yield this_task
|
||||
|
||||
|
||||
def get_build_platform(platform):
|
||||
build_platforms = {
|
||||
"win": "win64-shippable",
|
||||
"mac": "macosx64-shippable",
|
||||
"lin": "linux64-shippable",
|
||||
}
|
||||
return build_platforms[platform[:3]]
|
||||
|
|
@ -150,4 +150,10 @@ def add_command(config, tasks):
|
|||
}
|
||||
)
|
||||
|
||||
if task.get("index"):
|
||||
task["index"].setdefault(
|
||||
"job-name",
|
||||
f"update-verify-config-{task['name']}-{task['extra']['channel']}",
|
||||
)
|
||||
|
||||
yield task
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue