Bug 1583650 - Add general performance testing cron task. r=perftest-reviewers,davehunt
authorGregory Mierzwinski <gmierz2@outlook.com>
Fri, 27 Sep 2019 15:51:46 +0000
changeset 495684 38005dfbfc8cdca978ab4ec35552317f30089736
parent 495683 1e0061521d8669f562e052fc944d62b2ab790309
child 495685 eb661b954b91447706dc34d0c0a8137731e1db26
push id114140
push userdvarga@mozilla.com
push dateWed, 02 Oct 2019 18:04:51 +0000
treeherdermozilla-inbound@32eb0ea893f3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersperftest-reviewers, davehunt
bugs1583650
milestone71.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1583650 - Add general performance testing cron task. r=perftest-reviewers,davehunt This patch modifies the existing android_power_testing cron task to make it a more general performance testing task that runs a set of tests 3 times a week. The tests that will be running in this task are all chrome, chromium, android CPU+memory, and android power tests. Differential Revision: https://phabricator.services.mozilla.com/D47140
.cron.yml
taskcluster/taskgraph/target_tasks.py
--- a/.cron.yml
+++ b/.cron.yml
@@ -91,26 +91,28 @@ jobs:
           treeherder-symbol: f68
           target-tasks-method: fennec_v68
           include-push-tasks: true
       run-on-projects:
           - mozilla-central
       when:
           - {weekday: 'Saturday', hour: 5, minute: 0}
 
-    - name: android-power-tests
+    - name: general-perf-testing
       job:
           type: decision-task
-          treeherder-symbol: apt
-          target-tasks-method: android_power
+          treeherder-symbol: gpt
+          target-tasks-method: general_perf_testing
           include-push-tasks: true
       run-on-projects:
           - mozilla-central
       when:
-          - {weekday: 'Saturday', hour: 17, minute: 0}
+          - {weekday: 'Monday', hour: 10, minute: 30}
+          - {weekday: 'Wednesday', hour: 10, minute: 30}
+          - {weekday: 'Friday', hour: 10, minute: 30}
 
     - name: searchfox-index
       job:
           type: decision-task
           treeherder-symbol: Searchfox
           target-tasks-method: searchfox_index
       run-on-projects:
           - mozilla-central
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -508,41 +508,53 @@ def target_tasks_fennec_v68(full_task_gr
         if attributes.get('unittest_suite') != 'raptor':
             return False
         if '-fennec68-' in attributes.get('raptor_try_name'):
             return True
 
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
-@_target_task('android_power')
-def target_tasks_android_power(full_task_graph, parameters, graph_config):
+@_target_task('general_perf_testing')
+def target_tasks_general_perf_testing(full_task_graph, parameters, graph_config):
     """
-    Select tasks required for running android power tests
+    Select tasks required for running performance tests 3 times a week.
     """
     def filter(task):
         platform = task.attributes.get('build_platform')
         attributes = task.attributes
-
-        if platform and 'android' not in platform:
-            return False
         if attributes.get('unittest_suite') != 'raptor':
             return False
         try_name = attributes.get('raptor_try_name')
+        # Run chrome and chromium on all platforms available
+        if '-chrome' in try_name:
+            return True
+        if '-chromium' in try_name:
+            return True
+
+        # Run the following tests on android geckoview
+        if platform and 'android' not in platform:
+            return False
         if 'geckoview' not in try_name:
             return False
-        if '-cpu' in try_name:
+
+        # Run cpu+memory, and power tests
+        cpu_n_memory_task = '-cpu' in try_name and '-memory' in try_name
+        power_task = '-power' in try_name
+        # Ignore cpu+memory+power tests
+        if power_task and cpu_n_memory_task:
             return False
-        if '-memory' in try_name:
-            return False
-        if '-power' in try_name and 'pgo' in platform:
+        if power_task or cpu_n_memory_task:
+            if 'pgo' not in platform:
+                return False
             if '-speedometer-' in try_name:
                 return True
-            if '-scn-power-idle' in try_name:
+            if '-scn' in try_name and '-idle' in try_name:
                 return True
+        return False
 
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
 def make_desktop_nightly_filter(platforms):
     """Returns a filter that gets all nightly tasks on the given platform."""
     def filter(task, parameters):
         return all([