bug 1384794 - single hook for tc desktop nightlies (unify buildids) r=callek DONTBUILD
authorAki Sasaki <asasaki@mozilla.com>
Thu, 27 Jul 2017 09:23:41 -0700
changeset 420109 ec1b0a2fe492bb5499b61dda3b88b0e17a8aa81e
parent 420108 fe31a71693ae5df1c7917da05727bd821fff01b0
child 420110 5b3385365e5478c02dd26d7537a563a84983a127
push id7566
push usermtabara@mozilla.com
push dateWed, 02 Aug 2017 08:25:16 +0000
treeherdermozilla-beta@86913f512c3c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscallek
bugs1384794
milestone56.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 1384794 - single hook for tc desktop nightlies (unify buildids) r=callek DONTBUILD MozReview-Commit-ID: A0yzLvh9x3U
.cron.yml
taskcluster/taskgraph/target_tasks.py
taskcluster/taskgraph/util/scriptworker.py
--- a/.cron.yml
+++ b/.cron.yml
@@ -2,41 +2,46 @@
 # `taskcluster/taskgraph/cron/schema.py`.  For documentation, see
 # `taskcluster/docs/cron.rst`.
 
 jobs:
     - name: nightly-desktop
       job:
           type: decision-task
           treeherder-symbol: Nd
-          target-tasks-method: nightly_linux
+          target-tasks-method: nightly_desktop
       run-on-projects:
           - mozilla-central
           - date
       when:
           by-project:
             # Match buildbot starts for now
             date: [{hour: 15, minute: 0}]
             mozilla-central: [{hour: 10, minute: 0}]
             # No default
 
+    - name: nightly-desktop-linux
+      job:
+          type: decision-task
+          treeherder-symbol: Nd-Ln
+          target-tasks-method: nightly_linux
+      run-on-projects:
+          - mozilla-central
+          - date
+      when: [] # never (hook only)
+
     - name: nightly-desktop-osx
       job:
           type: decision-task
           treeherder-symbol: Nd-OSX
           target-tasks-method: nightly_macosx
       run-on-projects:
           - mozilla-central
           - date
-      when:
-          by-project:
-            # Match buildbot starts for now
-            date: [{hour: 15, minute: 0}]
-            mozilla-central: [{hour: 10, minute: 0}]
-            # No default
+      when: [] # never (hook only)
 
     - name: nightly-desktop-win
       job:
           type: decision-task
           treeherder-symbol: Nd-Win
           target-tasks-method: nightly_win
       run-on-projects:
           - mozilla-central
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -286,48 +286,54 @@ def target_tasks_pine(full_task_graph, p
         if platform == 'linux64-asan':
             return False
         # disable non-pine and nightly tasks
         if standard_filter(task, parameters):
             return True
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
-# nightly_linux should be refactored to be nightly_all once
-# https://bugzilla.mozilla.org/show_bug.cgi?id=1267425 dependent bugs are
-# implemented
 @_target_task('nightly_macosx')
 def target_tasks_nightly_macosx(full_task_graph, parameters):
     """Select the set of tasks required for a nightly build of macosx. 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')
         if platform in ('macosx64-nightly', ):
             return task.attributes.get('nightly', False)
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
-# nightly_win should be refactored to be nightly_all once
-# https://bugzilla.mozilla.org/show_bug.cgi?id=1267428 dependent bugs are
-# implemented
 @_target_task('nightly_win')
-def target_tasks_nightly_win64(full_task_graph, parameters):
+def target_tasks_nightly_win(full_task_graph, parameters):
     """Select the set of tasks required for a nightly build of win32 and win64.
     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')
         if not filter_for_project(task, parameters):
             return False
         if platform in ('win32-nightly', 'win64-nightly'):
             return task.attributes.get('nightly', False)
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
+@_target_task('nightly_desktop')
+def target_tasks_nightly_desktop(full_task_graph, parameters):
+    """Select the set of tasks required for a nightly build of linux, mac,
+    windows."""
+    # Avoid duplicate tasks.
+    return list(
+        set(target_tasks_nightly_win(full_task_graph, parameters))
+        | set(target_tasks_nightly_macosx(full_task_graph, parameters))
+        | set(target_tasks_nightly_linux(full_task_graph, parameters))
+    )
+
+
 # Opt DMD builds should only run nightly
 @_target_task('nightly_dmd')
 def target_tasks_dmd(full_task_graph, parameters):
     """Target DMD that run nightly on the m-c branch."""
     def filter(task):
         platform = task.attributes.get('build_platform', '')
         return platform.endswith('-dmd')
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -95,16 +95,17 @@ BEETMOVER_RELEASE_TARGET_TASKS = set([
 This is a list of list-pairs, for ordering.
 """
 BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK = [[
     'all-nightly-tasks', set([
         'nightly_fennec',
         'nightly_linux',
         'nightly_macosx',
         'nightly_win',
+        'nightly_desktop',
         'mozilla_beta_tasks',
         'mozilla_release_tasks',
     ])
 ], [
     'all-release-tasks', BEETMOVER_RELEASE_TARGET_TASKS
 ]]
 
 """Map the beetmover scope aliases to the actual scopes.