Bug 1338385 - Add cron job for nightly coverage tests run; r?jmaher draft coverage-cron-job
authorMadeleine Chercover <madeleinechercover@me.com>
Wed, 08 Feb 2017 11:16:25 -0800
branchcoverage-cron-job
changeset 482032 b73dbc73b71a15fc704675212e4e69434a47030c
parent 482030 a288fe35e494cec3620717eab66eaff6f68a6369
child 724642 935682b5eefb2912c5fd06d2d2e0e082e4c21472
push id44985
push userbmo:madeleinechercover@me.com
push dateFri, 10 Feb 2017 21:23:58 +0000
reviewersjmaher
bugs1338385
milestone54.0a1
Bug 1338385 - Add cron job for nightly coverage tests run; r?jmaher MozReview-Commit-ID: GiL4LZgHmqW
.cron.yml
taskcluster/taskgraph/target_tasks.py
--- a/.cron.yml
+++ b/.cron.yml
@@ -44,8 +44,18 @@ jobs:
           type: decision-task
           treeherder-symbol: Vg
           target-tasks-method: mochitest_valgrind
       run-on-projects:
           - mozilla-central
       when:
           - {hour: 16, minute: 0}
           - {hour: 4, minute: 0}
+
+    - name: nightly-code-coverage
+      job:
+          type: decision-task
+          treeherder-symbol: Nc
+          target-tasks-method: nightly_code_coverage
+      run-on-projects:
+          - mozilla-central
+      when:
+          - {hour: 18, minute: 0}
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -147,16 +147,25 @@ def target_tasks_valgrind(full_task_grap
         if platform not in ['linux64']:
             return False
         if task.attributes.get('unittest_suite'):
             if not (task.attributes['unittest_suite'].startswith('mochitest-valgrind')):
                 return False
         return True
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
+@_target_task('nightly_code_coverage')
+def target_tasks_code_coverage(full_task_graph, parameters):
+    """Target tasks that generate coverage data."""
+    def filter(task):
+        platform = task.attributes.get('build_platform')
+        if platform not in ('linux64-ccov/opt', 'linux64-jsdcov/opt'):
+            return False
+        return True
+    return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 @_target_task('nightly_fennec')
 def target_tasks_nightly(full_task_graph, parameters):
     """Select the set of tasks required for a nightly build of fennec. The
     nightly build process involves a pipeline of builds, signing,
     and, eventually, uploading the tasks to balrog."""
     def filter(task):
         platform = task.attributes.get('build_platform')