From 3ab856b5a0efdb920ceeccec9917df47df1d4400 Mon Sep 17 00:00:00 2001 From: Kash Shampur Date: Tue, 16 May 2023 13:36:22 +0000 Subject: [PATCH] Bug 1824829 - Add a daily cron for building and running performance tests on custom-car. r=perftest-reviewers,afinder This patch adds a daily cron task to build the custom chromium-as-release (CaR) application and running raptor browsertime tests with it. Differential Revision: https://phabricator.services.mozilla.com/D177545 --- .cron.yml | 12 ++++++++ taskcluster/gecko_taskgraph/target_tasks.py | 34 +++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/.cron.yml b/.cron.yml index acd882528b1a..7236851f97e9 100644 --- a/.cron.yml +++ b/.cron.yml @@ -107,6 +107,18 @@ jobs: - {weekday: 'Wednesday', hour: 10, minute: 30} - {weekday: 'Friday', hour: 10, minute: 30} + - name: custom-car-perf-testing + job: + type: decision-task + treeherder-symbol: ccar + target-tasks-method: custom-car_perf_testing + include-push-tasks: true + run-on-projects: + - mozilla-central + when: + by-project: + mozilla-central: [{hour: 18, minute: 30}] + # For more context on this job, see: # https://github.com/mozsearch/mozsearch-mozilla#how-searchfoxorg-stays-up-to-date # Note that searchfox now runs on-push for mozilla-central, but continues diff --git a/taskcluster/gecko_taskgraph/target_tasks.py b/taskcluster/gecko_taskgraph/target_tasks.py index adcab834b4ee..1953a3e74bf2 100644 --- a/taskcluster/gecko_taskgraph/target_tasks.py +++ b/taskcluster/gecko_taskgraph/target_tasks.py @@ -721,6 +721,35 @@ def target_tasks_ship_geckoview(full_task_graph, parameters, graph_config): return [l for l, t in full_task_graph.tasks.items() if filter(t)] +@_target_task("custom-car_perf_testing") +def target_tasks_custom_car_perf_testing(full_task_graph, parameters, graph_config): + """Select tasks required for running daily performance tests for custom chromium-as-release.""" + + def filter(task): + platform = task.attributes.get("test_platform") + attributes = task.attributes + if attributes.get("unittest_suite") != "raptor": + return False + + 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 + + # Desktop selection only for CaR + if "android" not in platform: + if "browsertime" in try_name and "custom-car" in try_name: + return True + return False + + return [l for l, t in full_task_graph.tasks.items() if filter(t)] + + @_target_task("general_perf_testing") def target_tasks_general_perf_testing(full_task_graph, parameters, graph_config): """ @@ -751,6 +780,9 @@ def target_tasks_general_perf_testing(full_task_graph, parameters, graph_config) return True if "chromium" in try_name: return True + # chromium-as-release has it's own cron + if "custom-car" in try_name: + return False if "-live" in try_name: return True if "-fis" in try_name: @@ -1013,6 +1045,8 @@ def target_tasks_chromium_update(full_task_graph, parameters, graph_config): "fetch-win32-chromium", "fetch-win64-chromium", "fetch-mac-chromium", + "toolchain-linux64-custom-car", + "toolchain-win64-custom-car", ]