bug 1340609 - promotable beta linux builds on push. r?dustin a=release draft
authorAki Sasaki <asasaki@mozilla.com>
Wed, 22 Feb 2017 10:24:58 -0800
changeset 488201 fe2b06ce090cdd6fe3c6cac4385775f5ca645cf6
parent 488200 13280654cbc7619e44d3e8a0f43230c30147b507
child 546665 da008947b330e3af4b0fc723da5874191266f7b2
push id46452
push userasasaki@mozilla.com
push dateWed, 22 Feb 2017 18:55:33 +0000
reviewersdustin, release
bugs1340609
milestone54.0a1
bug 1340609 - promotable beta linux builds on push. r?dustin a=release MozReview-Commit-ID: JAqifpgD3vW
taskcluster/taskgraph/decision.py
taskcluster/taskgraph/target_tasks.py
--- a/taskcluster/taskgraph/decision.py
+++ b/taskcluster/taskgraph/decision.py
@@ -51,16 +51,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
@@ -195,16 +195,42 @@ def target_tasks_nightly_linux(full_task
     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)
+
+
 @_target_task('stylo_tasks')
 def target_tasks_stylo(full_task_graph, parameters):
     """Target stylotasks that only run on the m-c branch."""
     def filter(task):
         platform = task.attributes.get('build_platform')
         # only select platforms
         if platform not in ('linux64-stylo'):
             return False