From f7aeb13ca225b59b92344c5768d72564ca9b9d73 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Mon, 17 Jul 2023 17:24:06 +0200 Subject: [PATCH] Bug 1881774 - remove browsertime jobs from firefox-android. r=sparky,gbrown,owlish,geckoview-reviewers,releng-reviewers fenix perf tests are handled by browsertime-mobile tests now. Differential Revision: https://phabricator.services.mozilla.com/D201432 --- mobile/android/taskcluster/ci/browsertime/kind.yml | 173 ------------------- .../android_taskgraph/transforms/browsertime.py | 189 --------------------- 2 files changed, 362 deletions(-) delete mode 100644 mobile/android/taskcluster/ci/browsertime/kind.yml delete mode 100644 taskcluster/android_taskgraph/transforms/browsertime.py diff --git a/mobile/android/taskcluster/ci/browsertime/kind.yml b/mobile/android/taskcluster/ci/browsertime/kind.yml deleted file mode 100644 index 7f7d8565deca..000000000000 --- a/mobile/android/taskcluster/ci/browsertime/kind.yml +++ /dev/null @@ -1,173 +0,0 @@ ---- -loader: taskgraph.loader.transform:loader -transforms: - - android_taskgraph.transforms.browsertime:transforms - - android_taskgraph.transforms.notify:transforms - - taskgraph.transforms.job:transforms - - taskgraph.transforms.task:transforms - -kind-dependencies: - - signing-apk - - toolchain - -primary-dependency: signing-apk - -only-for-build-types: - - fenix-nightly-simulation - -only-for-abis: - - arm64-v8a - -task-defaults: - attributes: - artifact_prefix: public/test_info - nightly-test: true - dependencies: - geckoview-nightly: geckoview-nightly - notify: - by-level: - '3': - email: - content: This calls for an action of the Performance team. Use the link to view it on Treeherder. - link: - text: Treeherder Job - href: 'https://treeherder.mozilla.org/#/jobs?repo={product_name}&revision={head_rev}&searchStr={task_name}' - on-reasons: [failed] - subject: '[{product_name}] Raptor-Browsertime job "{task_name}" failed' - to-addresses: [perftest-alerts@mozilla.com] - default: {} - run-on-tasks-for: [] - treeherder: - kind: test - tier: 2 - platform: - by-abi: - arm64-v8a: android-hw-a51-11-0-aarch64-shippable-qr/opt - worker-type: - by-abi: - arm64-v8a: t-bitbar-gw-perf-a51 - worker: - max-run-time: 3600 - env: - GECKO_HEAD_REPOSITORY: "https://hg.mozilla.org/mozilla-central" - MOZ_AUTOMATION: "1" - MOZ_HIDE_RESULTS_TABLE: "1" - MOZ_NO_REMOTE: "1" - MOZ_NODE_PATH: "/usr/local/bin/node" - MOZHARNESS_CONFIG: "raptor/android_hw_config.py" - MOZHARNESS_SCRIPT: "raptor_script.py" - NEED_XVFB: "false" - NO_FAIL_ON_TEST_ERRORS: "1" - XPCOM_DEBUG_BREAK: "warn" - PYTHON: "python3" - LANG: "en_US.UTF-8" - artifacts: - - name: public/logs/ - path: workspace/logs - type: directory - - - name: public/test_info/ - path: workspace/build/blobber_upload_dir - type: directory - run-visual-metrics: true - chimera: true - run: - using: run-task - checkout: false - run-as-root: true - command: - - 'bash' - - './test-linux.sh' - - '--cfg=mozharness/configs/raptor/android_hw_config.py' - - '--app=fenix' - - '--browsertime' - - '--binary=org.mozilla.fenix' - - '--activity=org.mozilla.fenix.IntentReceiverActivity' - - '--download-symbols=ondemand' - - '--browsertime-node=$MOZ_FETCHES_DIR/node/bin/node' - - '--browsertime-geckodriver=$MOZ_FETCHES_DIR/geckodriver' - - '--browsertime-ffmpeg=$MOZ_FETCHES_DIR/ffmpeg-4.1.4-i686-static/bin/ffmpeg' - - '--browsertime-browsertimejs=$MOZ_FETCHES_DIR/browsertime/node_modules/browsertime/bin/browsertime.js' - fetches: - toolchain: - - browsertime - - linux64-ffmpeg-4.1.4 - - linux64-geckodriver - - linux64-minidump-stackwalk - - linux64-node-16 - -tasks: - tp6m: - run-with-fission: false # Bug 1816421 disable fission perf tests - page-load-tests: - - amazon - - instagram - - [bing-search-restaurants, bing-s-r] - - [ebay-kleinanzeigen-search, ebay-k-s] - - wikipedia - - booking - - [cnn-ampstories, cnn-amp] - - dailymail - - imdb - - [facebook-cristiano, fb-cris] - - youtube - - bing - - [ebay-kleinanzeigen, ebay-k] - - [google-maps, gmaps] - - reddit - - sina - - [stackoverflow, stacko] - - bild-de - - cnn - - [google-search-restaurants, gsearch-r] - - tp6m-hv: - run-with-fission: false # Bug 1816421 disable fission perf tests - page-load-tests: - - google - - [amazon-search, amazon-s] - - [microsoft-support, micros-sup] - - espn - # Bug 1682027 - Disabled due to high failure rate - # - facebook - - [youtube-watch, youtube-w] - - allrecipes - - speedometer: - description: "Raptor Speedometer 2.1 Benchmark tests on Fenix" - subtest-symbol: sp - test-name: speedometer - run-visual-metrics: false - chimera: false - - speedometer3: - description: "Raptor Speedometer 3 Benchmark tests on Fenix" - subtest-symbol: sp3 - test-name: speedometer3 - run-visual-metrics: false - chimera: false - - youtube-playback-av1-sfr: - description: "Raptor YouTube Playback AV1 SFR on Fenix" - test-name: youtube-playback-av1-sfr - run-visual-metrics: false - chimera: false - - youtube-playback-h264-sfr: - description: "Raptor YouTube Playback H264 SFR on Fenix" - test-name: youtube-playback-h264-sfr - run-visual-metrics: false - chimera: false - - youtube-playback-vp9-sfr: - description: "Raptor YouTube Playback VP9 SFR on Fenix" - run-visual-metrics: false - chimera: false - test-name: youtube-playback-vp9-sfr - - constant-regression: - description: "Raptor Perftest Regression Detection Testing" - subtest-symbol: regress-c - test-name: constant-regression - run-visual-metrics: false - chimera: false diff --git a/taskcluster/android_taskgraph/transforms/browsertime.py b/taskcluster/android_taskgraph/transforms/browsertime.py deleted file mode 100644 index 4bba655e11dc..000000000000 --- a/taskcluster/android_taskgraph/transforms/browsertime.py +++ /dev/null @@ -1,189 +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/. -""" -Apply some defaults and minor modifications to the jobs defined in the build -kind. -""" - -import copy -import json -from copy import deepcopy - -from taskgraph.transforms.base import TransformSequence -from taskgraph.util.schema import resolve_keyed_by -from taskgraph.util.treeherder import inherit_treeherder_from_dep - -transforms = TransformSequence() - - -@transforms.add -def split_raptor_subtests(config, tests): - for test in tests: - # For tests that have 'page-load-tests' listed, we want to create a separate - # test job for every subtest (i.e. split out each page-load URL into its own job) - subtests = test.pop("page-load-tests", None) - if not subtests: - yield test - continue - - for subtest in subtests: - pageload_test = deepcopy(test) - - if isinstance(subtest, list): - pageload_test["test-name"] = subtest[0] - pageload_test["subtest-symbol"] = subtest[1] - else: - pageload_test["test-name"] = subtest - pageload_test["subtest-symbol"] = subtest - yield pageload_test - - -@transforms.add -def add_variants(config, tasks): - only_types = config.config["only-for-build-types"] - only_abis = config.config["only-for-abis"] - - tests = list(tasks) - - for dep_task in config.kind_dependencies_tasks.values(): - build_type = dep_task.attributes.get("build-type", "") - if build_type not in only_types: - continue - - for abi, apk_metadata in dep_task.attributes["apks"].items(): - if abi not in only_abis: - continue - apk_path = apk_metadata["name"] - for test in tests: - test = copy.deepcopy(test) - attributes = copy.deepcopy(dep_task.attributes) - attributes.update(test.get("attributes", {})) - attributes["abi"] = abi - attributes["apk"] = apk_path - test["attributes"] = attributes - test["primary-dependency"] = dep_task - yield test - - -@transforms.add -def build_browsertime_task(config, tasks): - for task in tasks: - signing = task.pop("primary-dependency") - task.setdefault("dependencies", {})["signing"] = signing.label - build_type = task["attributes"]["build-type"] - abi = task["attributes"]["abi"] - apk = task["attributes"]["apk"] - - for key in ("args", "treeherder.platform", "worker-type"): - resolve_keyed_by(task, key, item_name=task["name"], **{"abi": abi}) - - task["treeherder"] = inherit_treeherder_from_dep(task, signing) - - test_name = task.pop("test-name") - platform = task["treeherder"]["platform"] - - task_name = "{}-{}-{}-{}".format(platform, test_name, build_type, abi) - task["name"] = task_name - task["description"] = task_name - - extra_config = { - "installer_url": "".format(apk), - "test_packages_url": "", - } - env = task["worker"]["env"] - env["EXTRA_MOZHARNESS_CONFIG"] = { - "artifact-reference": json.dumps(extra_config, sort_keys=True) - } - env["GECKO_HEAD_REV"] = "default" - env["MOZILLA_BUILD_URL"] = {"artifact-reference": "".format(apk)} - env["MOZHARNESS_URL"] = { - "artifact-reference": "" - } - env["TASKCLUSTER_WORKER_TYPE"] = task["worker-type"] - - worker = task["worker"] - worker.setdefault("mounts", []).append( - { - "content": { - "url": "https://hg.mozilla.org/mozilla-central/raw-file/default/taskcluster/scripts/tester/test-linux.sh" - }, - "file": "./test-linux.sh", - } - ) - task["run"]["command"].append("--test={}".format(test_name)) - task["run"]["command"].extend(task.pop("args", [])) - - # Setup treherder symbol - symbol = task.pop("subtest-symbol", None) - - # taskcluster is merging task attributes with the default ones - # resulting the --cold extra option in the ytp warm tasks - if "youtube-playback" in task["name"]: - symbol = test_name.replace("youtube-playback-", "ytp-") - - # Setup chimera for combined warm+cold testing - if task.pop("chimera", False): - task["run"]["command"].append("--chimera") - - # Add '-c' to taskcluster symbol when running cold tests - elif "--cold" in task["run"]["command"]: - symbol += "-c" - - # Setup visual metrics - run_visual_metrics = task.pop("run-visual-metrics", False) - if run_visual_metrics: - task["run"]["command"].append("--browsertime-video") - task["run"]["command"].append("--browsertime-visualmetrics") - task["run"]["command"].append("--browsertime-no-ffwindowrecorder") - - # Build taskcluster group and symol - task["treeherder"]["symbol"] = "Btime(%s)" % symbol - task["name"] = ( - task["name"].replace("tp6m-", "tp6m-{}-".format(symbol)).replace("-hv", "") - ) - yield task - - -@transforms.add -def setup_nofis(config, tasks): - for task in tasks: - if task.pop("run-with-fission", False): - # Don't continue after this since this flag says - # that a fission and a non-fission variant should - # run - fission_task = copy.deepcopy(task) - yield fission_task - - # Disable fission - task["run"]["command"].append("--disable-fission") - - # Build taskcluster group and symol - task["treeherder"]["symbol"] = task["treeherder"]["symbol"].replace( - "Btime", "Btime-nofis" - ) - task["name"] += "-nofis" - - yield task - - -@transforms.add -def fill_email_data(config, tasks): - product_name = config.params["project"] - format_kwargs = { - "product_name": product_name.lower(), - "head_rev": config.params["head_rev"], - } - - for task in tasks: - format_kwargs["task_name"] = task["name"] - - resolve_keyed_by( - task, "notify", item_name=task["name"], level=config.params["level"] - ) - email = task["notify"].get("email") - if email: - email["link"]["href"] = email["link"]["href"].format(**format_kwargs) - email["subject"] = email["subject"].format(**format_kwargs) - - yield task -- 2.11.4.GIT