From 0948667bc62415d48abff27e1405fb4ab4d65d75 Mon Sep 17 00:00:00 2001 From: Kash Shampur Date: Tue, 13 Sep 2022 18:39:43 +0000 Subject: [PATCH] Bug 1790476 - Add a cron to run browsertime tests weekly on the mozilla-release branch. r=sparky,perftest-reviewers This patch limits the frequency of performance tests running on the mozilla-release branch. In particular, we need to reduce the load on our android devices for the time being, similar to how we did this for the beta branch in bug 1788026. Differential Revision: https://phabricator.services.mozilla.com/D157159 --- .cron.yml | 11 ++++++ taskcluster/gecko_taskgraph/target_tasks.py | 41 +++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/.cron.yml b/.cron.yml index ce1c862f7d94..8d6284a2ba59 100644 --- a/.cron.yml +++ b/.cron.yml @@ -240,6 +240,17 @@ jobs: when: - {hour: 16, minute: 0} + - name: weekly-release-perf + job: + type: decision-task + treeherder-symbol: w-perf + target-tasks-method: weekly_release_perf + include-push-tasks: true + run-on-projects: + - mozilla-release + when: + - {weekday: 'Friday', hour: 16, minute: 0} + - name: raptor-tp6m job: type: decision-task diff --git a/taskcluster/gecko_taskgraph/target_tasks.py b/taskcluster/gecko_taskgraph/target_tasks.py index f15daf050e4a..e1b0f8f41d9d 100644 --- a/taskcluster/gecko_taskgraph/target_tasks.py +++ b/taskcluster/gecko_taskgraph/target_tasks.py @@ -1193,6 +1193,47 @@ def target_tasks_daily_beta_perf(full_task_graph, parameters, graph_config): return [l for l, t in full_task_graph.tasks.items() if filter(t)] +@_target_task("weekly_release_perf") +def target_tasks_weekly_release_perf(full_task_graph, parameters, graph_config): + """ + Select performance tests on the release branch to be run weekly + """ + + def filter(task): + platform = task.attributes.get("test_platform") + attributes = task.attributes + try_name = attributes.get("raptor_try_name") + + if attributes.get("unittest_suite") != "raptor": + return False + + if platform and accept_raptor_android_build(platform): + # Select browsertime & geckoview specific tests + if "browsertime" and "geckoview" in try_name: + if "g5" in platform: + return False + if "power" in try_name: + return False + if "cpu" in try_name: + return False + if "profiling" in try_name: + return False + if "-live" in try_name: + return False + if "speedometer" in try_name: + return True + if "webgl" in try_name: + return True + if "tp6m" in try_name: + return True + if "youtube-playback" in try_name: + return True + + return False + + return [l for l, t in full_task_graph.tasks.items() if filter(t)] + + @_target_task("raptor_tp6m") def target_tasks_raptor_tp6m(full_task_graph, parameters, graph_config): """