From 7473bdc29f955b726d4a591aaf70690ddb325709 Mon Sep 17 00:00:00 2001 From: Greg Mierzwinski Date: Mon, 12 Feb 2024 18:29:00 +0000 Subject: [PATCH] Bug 1873723 - Run browsertime tests on beta/release with a cron. r=perftest-reviewers,taskgraph-reviewers,kshampur,jcristau DONTBUILD This patch modifies the weekly release, and daily beta crons to run the browsertime desktop tests. The crons will also be scheduled at a different time now to be more in line with commits that run tests. At the same time, some of the other crons are modified to use a single method for checking if a platform is a desktop platform that can have tests running on it (similar to what we do for android). Differential Revision: https://phabricator.services.mozilla.com/D201250 --- .cron.yml | 4 +- taskcluster/gecko_taskgraph/target_tasks.py | 90 +++++++++++++++------ 2 files changed, 69 insertions(+), 25 deletions(-) diff --git a/.cron.yml b/.cron.yml index 04564312f35f..fe207343b1c0 100644 --- a/.cron.yml +++ b/.cron.yml @@ -232,7 +232,7 @@ jobs: run-on-projects: - mozilla-beta when: - - {hour: 16, minute: 0} + - {hour: 12, minute: 0} - name: weekly-release-perf job: @@ -243,7 +243,7 @@ jobs: run-on-projects: - mozilla-release when: - - {weekday: 'Friday', hour: 16, minute: 0} + - {weekday: 'Friday', hour: 12, minute: 0} - name: raptor-tp6m job: diff --git a/taskcluster/gecko_taskgraph/target_tasks.py b/taskcluster/gecko_taskgraph/target_tasks.py index 0efc303ffea2..d3ebdff98461 100644 --- a/taskcluster/gecko_taskgraph/target_tasks.py +++ b/taskcluster/gecko_taskgraph/target_tasks.py @@ -252,6 +252,20 @@ def accept_raptor_android_build(platform): return False if "a51" in platform: return True + return False + + +def accept_raptor_desktop_build(platform): + """Helper function for selecting correct desktop raptor builds.""" + if "android" in platform: + return False + # ignore all windows 7 perf jobs scheduled automatically + if "windows7" in platform or "windows10-32" in platform: + return False + # Completely ignore all non-shippable platforms + if "shippable" in platform: + return True + return False def filter_unsupported_artifact_builds(task, parameters): @@ -759,16 +773,10 @@ def target_tasks_custom_car_perf_testing(full_task_graph, parameters, graph_conf try_name = attributes.get("raptor_try_name") - # Completely ignore all non-shippable platforms - if "shippable" not in platform: - return False - - # ignore all windows 7 perf jobs scheduled automatically - if "windows10-32" in platform: - return False - # Desktop and Android selection for CaR - if "android" not in platform or accept_raptor_android_build(platform): + if accept_raptor_desktop_build(platform) or accept_raptor_android_build( + platform + ): if "browsertime" in try_name and ( "custom-car" in try_name or "cstm-car-m" in try_name ): @@ -792,14 +800,6 @@ def target_tasks_general_perf_testing(full_task_graph, parameters, graph_config) try_name = attributes.get("raptor_try_name") - # Completely ignore all non-shippable platforms - if "shippable" not in platform: - return False - - # ignore all windows 7 perf jobs scheduled automatically - if "windows7" in platform or "windows10-32" in platform: - return False - if "tp6-bench" in try_name: return False @@ -808,7 +808,7 @@ def target_tasks_general_perf_testing(full_task_graph, parameters, graph_config) return False # Desktop selection - if "android" not in platform: + if accept_raptor_desktop_build(platform): # Select some browsertime tasks as desktop smoke-tests if "browsertime" in try_name: if "chrome" in try_name: @@ -914,9 +914,9 @@ def target_tasks_speedometer_tests(full_task_graph, parameters, graph_config): if attributes.get("unittest_suite") != "raptor": return False - if ( - "android" not in platform and "windows10-32" not in platform - ) or accept_raptor_android_build(platform): + if accept_raptor_desktop_build(platform) or accept_raptor_android_build( + platform + ): try_name = attributes.get("raptor_try_name") if ( "browsertime" in try_name @@ -1245,8 +1245,30 @@ def target_tasks_daily_beta_perf(full_task_graph, parameters, graph_config): if attributes.get("unittest_suite") != "raptor": return False + if not platform: + return False - if platform and accept_raptor_android_build(platform): + if accept_raptor_desktop_build(platform): + if "browsertime" and "firefox" in try_name: + if "profiling" in try_name: + return False + if "bytecode" in try_name: + return False + if "live" in try_name: + return False + if "webext" in try_name: + return False + if "unity" in try_name: + return False + if "wasm" in try_name: + return False + if "tp6-bench" in try_name: + return False + if "tp6" in try_name: + return True + if "benchmark" in try_name: + return True + elif accept_raptor_android_build(platform): # Select browsertime & geckoview specific tests if "browsertime" and "geckoview" in try_name: if "power" in try_name: @@ -1282,8 +1304,30 @@ def target_tasks_weekly_release_perf(full_task_graph, parameters, graph_config): if attributes.get("unittest_suite") != "raptor": return False + if not platform: + return False - if platform and accept_raptor_android_build(platform): + if accept_raptor_desktop_build(platform): + if "browsertime" and "firefox" in try_name: + if "power" in try_name: + return False + if "profiling" in try_name: + return False + if "bytecode" in try_name: + return False + if "live" in try_name: + return False + if "webext" in try_name: + return False + if "tp6-bench" in try_name: + return False + if "tp6" in try_name: + return True + if "benchmark" in try_name: + return True + if "youtube-playback" in try_name: + return True + elif accept_raptor_android_build(platform): # Select browsertime & geckoview specific tests if "browsertime" and "geckoview" in try_name: if "power" in try_name: