bug 1340609 - promotable beta linux builds on push. r=dustin a=release
authorAki Sasaki <asasaki@mozilla.com>
Thu, 23 Feb 2017 16:41:04 -0800
changeset 378687 6d6a559d8cc128170baa2fd49f81e9656bfdf962
parent 378686 ddb1f78c74c155aabba863c176d9bd367aeba791
child 378688 2e4452df31d638985001179030bacb1b4b064c75
push id1419
push userjlund@mozilla.com
push dateMon, 10 Apr 2017 20:44:07 +0000
treeherdermozilla-release@5e6801b73ef6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin, release
bugs1340609
milestone53.0a2
bug 1340609 - promotable beta linux builds on push. r=dustin a=release
taskcluster/taskgraph/decision.py
taskcluster/taskgraph/target_tasks.py
--- a/taskcluster/taskgraph/decision.py
+++ b/taskcluster/taskgraph/decision.py
@@ -50,16 +50,25 @@ PER_PROJECT_PARAMETERS = {
         'optimize_target_tasks': True,
     },
 
     'graphics': {
         'target_tasks_method': 'graphics_tasks',
         'optimize_target_tasks': True,
     },
 
+    'mozilla-beta': {
+        'target_tasks_method': 'mozilla_beta_tasks',
+        'optimize_target_tasks': True,
+    },
+    'mozilla-release': {
+        'target_tasks_method': 'mozilla_release_tasks',
+        'optimize_target_tasks': True,
+    },
+
     # the default parameters are used for projects that do not match above.
     'default': {
         'target_tasks_method': 'default',
         'optimize_target_tasks': True,
     }
 }
 
 
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -132,8 +132,34 @@ def target_tasks_nightly_linux(full_task
     """Select the set of tasks required for a nightly build of linux. 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 ('linux64-nightly', 'linux-nightly'):
             return task.attributes.get('nightly', False)
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
+
+
+@_target_task('mozilla_beta_tasks')
+def target_tasks_mozilla_beta(full_task_graph, parameters):
+    """Select the set of tasks required for a promotable beta or release build
+    of linux, plus android CI. The candidates build process involves a pipeline
+    of builds and signing, but does not include beetmover or balrog jobs."""
+    def filter(task):
+        platform = task.attributes.get('build_platform')
+        if platform in ('android-api-15', 'android-x86'):
+            return True
+        if platform in ('linux64-nightly', 'linux-nightly'):
+            if task.kind not in [
+                'balrog', 'beetmover', 'beetmover-checksums', 'beetmover-l10n',
+                'checksums-signing',
+            ]:
+                return task.attributes.get('nightly', False)
+    return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
+
+
+@_target_task('mozilla_release_tasks')
+def target_tasks_mozilla_release(full_task_graph, parameters):
+    """Select the set of tasks required for a promotable beta or release build
+    of linux, plus android CI. The candidates build process involves a pipeline
+    of builds and signing, but does not include beetmover or balrog jobs."""
+    return target_tasks_mozilla_beta(full_task_graph, parameters)