diff options
Diffstat (limited to 'taskcluster/gecko_taskgraph/transforms')
8 files changed, 63 insertions, 41 deletions
diff --git a/taskcluster/gecko_taskgraph/transforms/artifact.py b/taskcluster/gecko_taskgraph/transforms/artifact.py index 559148f7b4..b14f723d4a 100644 --- a/taskcluster/gecko_taskgraph/transforms/artifact.py +++ b/taskcluster/gecko_taskgraph/transforms/artifact.py @@ -85,9 +85,11 @@ def set_artifact_expiration(config, jobs): art_dict = manifest["macos"] elif plat.startswith("android"): art_dict = manifest["android"] + elif plat.startswith("ios"): + art_dict = manifest["ios"] else: print( - 'The platform name "{plat}" didn\'t start with', + f'The platform name "{plat}" didn\'t start with', '"win", "mac", "android", or "linux".', file=sys.stderr, ) diff --git a/taskcluster/gecko_taskgraph/transforms/artifacts.yml b/taskcluster/gecko_taskgraph/transforms/artifacts.yml index 26f06640ad..efcbc70f15 100644 --- a/taskcluster/gecko_taskgraph/transforms/artifacts.yml +++ b/taskcluster/gecko_taskgraph/transforms/artifacts.yml @@ -18,3 +18,7 @@ android: target.crashreporter-symbols-full.tar.zst: shortest sccache.log: shortest sccache-stats.json: shortest + +ios: + sccache.log: shortest + sccache-stats.json: shortest diff --git a/taskcluster/gecko_taskgraph/transforms/bootstrap.py b/taskcluster/gecko_taskgraph/transforms/bootstrap.py index e4537cab01..9c02fc6819 100644 --- a/taskcluster/gecko_taskgraph/transforms/bootstrap.py +++ b/taskcluster/gecko_taskgraph/transforms/bootstrap.py @@ -59,7 +59,7 @@ def bootstrap_tasks(config, tasks): f"python3 bootstrap.py --no-interactive --application-choice {app}", "cd mozilla-unified", # After bootstrap, configure should go through without its own auto-bootstrap. - "./mach configure --disable-bootstrap", + "./mach configure --enable-bootstrap=no-update", # Then a build should go through too. "./mach build", ] diff --git a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py index eb4aea609f..060f37c9c2 100644 --- a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py +++ b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py @@ -15,6 +15,7 @@ from gecko_taskgraph.transforms.job import configure_taskdesc_for_run, run_job_u from gecko_taskgraph.transforms.job.common import get_expiration, support_vcs_checkout from gecko_taskgraph.transforms.test import normpath, test_description_schema from gecko_taskgraph.util.attributes import is_try +from gecko_taskgraph.util.perftest import is_external_browser VARIANTS = [ "shippable", @@ -63,9 +64,13 @@ def test_packages_url(taskdesc): ) # for android shippable we need to add 'en-US' to the artifact url test = taskdesc["run"]["test"] - if "android" in test["test-platform"] and ( - get_variant(test["test-platform"]) - in ("shippable", "shippable-qr", "shippable-lite", "shippable-lite-qr") + if ( + "android" in test["test-platform"] + and ( + get_variant(test["test-platform"]) + in ("shippable", "shippable-qr", "shippable-lite", "shippable-lite-qr") + ) + and not is_external_browser(test.get("try-name", "")) ): head, tail = os.path.split(artifact_url) artifact_url = os.path.join(head, "en-US", tail) diff --git a/taskcluster/gecko_taskgraph/transforms/snap_test.py b/taskcluster/gecko_taskgraph/transforms/snap_test.py index e6d879f225..d49276843d 100644 --- a/taskcluster/gecko_taskgraph/transforms/snap_test.py +++ b/taskcluster/gecko_taskgraph/transforms/snap_test.py @@ -43,6 +43,8 @@ def fill_template(config, tasks): timeout = 10 if collection != "opt": timeout = 60 + task["task"]["payload"]["env"]["BUILD_IS_DEBUG"] = "1" + task["task"]["payload"]["env"]["TEST_TIMEOUT"] = "{}".format(timeout) yield task diff --git a/taskcluster/gecko_taskgraph/transforms/source_test.py b/taskcluster/gecko_taskgraph/transforms/source_test.py index 5c561e8114..e3eeb7c819 100644 --- a/taskcluster/gecko_taskgraph/transforms/source_test.py +++ b/taskcluster/gecko_taskgraph/transforms/source_test.py @@ -10,7 +10,6 @@ treeherder configuration and attributes for that platform. import copy import os -import taskgraph from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import keymatch from taskgraph.util.schema import Schema, optionally_keyed_by, resolve_keyed_by @@ -18,7 +17,6 @@ from taskgraph.util.treeherder import join_symbol, split_symbol from voluptuous import Any, Extra, Optional, Required from gecko_taskgraph.transforms.job import job_description_schema -from gecko_taskgraph.util.hg import get_json_automationrelevance source_test_description_schema = Schema( { @@ -239,33 +237,6 @@ def set_code_review_env(config, jobs): @transforms.add -def set_base_revision_in_tgdiff(config, jobs): - # Don't attempt to download 'json-automation' locally as the revision may - # not exist in the repository. - if not os.environ.get("MOZ_AUTOMATION") or taskgraph.fast: - yield from jobs - return - - data = get_json_automationrelevance( - config.params["head_repository"], config.params["head_rev"] - ) - for job in jobs: - if job["name"] != "taskgraph-diff": - yield job - continue - - job["task-context"] = { - "from-object": { - "base_rev": data["changesets"][0]["parents"][0], - }, - "substitution-fields": [ - "run.command", - ], - } - yield job - - -@transforms.add def set_worker_exit_code(config, jobs): for job in jobs: worker = job["worker"] diff --git a/taskcluster/gecko_taskgraph/transforms/test/other.py b/taskcluster/gecko_taskgraph/transforms/test/other.py index dc258ef97a..b8cb95cff7 100644 --- a/taskcluster/gecko_taskgraph/transforms/test/other.py +++ b/taskcluster/gecko_taskgraph/transforms/test/other.py @@ -16,6 +16,7 @@ from taskgraph.util.taskcluster import get_artifact_path, get_index_url from voluptuous import Any, Optional, Required from gecko_taskgraph.transforms.test.variant import TEST_VARIANTS +from gecko_taskgraph.util.perftest import is_external_browser from gecko_taskgraph.util.platforms import platform_family from gecko_taskgraph.util.templates import merge @@ -260,6 +261,20 @@ def handle_keyed_by(config, tasks): @transforms.add +def setup_raptor_external_browser_platforms(config, tasks): + for task in tasks: + if task["suite"] != "raptor": + yield task + continue + + if is_external_browser(task["try-name"]): + task["build-platform"] = "linux64/opt" + task["build-label"] = "build-linux64/opt" + + yield task + + +@transforms.add def set_target(config, tasks): for task in tasks: build_platform = task["build-platform"] @@ -308,25 +323,25 @@ def setup_browsertime(config, tasks): ts = { "by-test-platform": { - "android.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"], - "linux.*": ["browsertime", "linux64-geckodriver", "linux64-node-16"], + "android.*": ["browsertime", "linux64-geckodriver", "linux64-node"], + "linux.*": ["browsertime", "linux64-geckodriver", "linux64-node"], "macosx1015.*": [ "browsertime", "macosx64-geckodriver", - "macosx64-node-16", + "macosx64-node", ], "macosx1400.*": [ "browsertime", "macosx64-aarch64-geckodriver", - "macosx64-aarch64-node-16", + "macosx64-aarch64-node", ], "windows.*aarch64.*": [ "browsertime", "win32-geckodriver", - "win32-node-16", + "win32-node", ], - "windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node-16"], - "windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node-16"], + "windows.*-32.*": ["browsertime", "win32-geckodriver", "win32-node"], + "windows.*-64.*": ["browsertime", "win64-geckodriver", "win64-node"], }, } diff --git a/taskcluster/gecko_taskgraph/transforms/test/raptor.py b/taskcluster/gecko_taskgraph/transforms/test/raptor.py index 0667d22bb2..18e21e6a1e 100644 --- a/taskcluster/gecko_taskgraph/transforms/test/raptor.py +++ b/taskcluster/gecko_taskgraph/transforms/test/raptor.py @@ -10,6 +10,7 @@ from voluptuous import Extra, Optional, Required from gecko_taskgraph.transforms.test import test_description_schema from gecko_taskgraph.util.copy_task import copy_task +from gecko_taskgraph.util.perftest import is_external_browser transforms = TransformSequence() task_transforms = TransformSequence() @@ -316,6 +317,28 @@ def add_extra_options(config, tests): yield test +@transforms.add +def modify_mozharness_configs(config, tests): + for test in tests: + if not is_external_browser(test["app"]): + yield test + continue + + test_platform = test["test-platform"] + mozharness = test.setdefault("mozharness", {}) + if "mac" in test_platform: + mozharness["config"] = ["raptor/mac_external_browser_config.py"] + elif "windows" in test_platform: + mozharness["config"] = ["raptor/windows_external_browser_config.py"] + elif "linux" in test_platform: + mozharness["config"] = ["raptor/linux_external_browser_config.py"] + elif "android" in test_platform: + test["target"] = "target.tar.bz2" + mozharness["config"] = ["raptor/android_hw_external_browser_config.py"] + + yield test + + @task_transforms.add def add_scopes_and_proxy(config, tasks): for task in tasks: |