bug 1423081 - desktop tc relpro taskcluster docs. r=callek draft
authorAki Sasaki <asasaki@mozilla.com>
Tue, 05 Dec 2017 19:42:24 -0800
changeset 711448 979f6669f62db669490805bef1bb2b6b6526f2fa
parent 711447 23c6001f28824c8c9d79110a0d4d8fbbd89e1e41
child 711449 dc64f59befc9f5af5dd73d33b9772d0f00d384a5
push id93069
push userasasaki@mozilla.com
push dateWed, 13 Dec 2017 22:57:07 +0000
reviewerscallek
bugs1423081
milestone59.0a1
bug 1423081 - desktop tc relpro taskcluster docs. r=callek MozReview-Commit-ID: JJGlzcJbBR4
taskcluster/docs/attributes.rst
taskcluster/docs/kinds.rst
taskcluster/taskgraph/target_tasks.py
--- a/taskcluster/docs/attributes.rst
+++ b/taskcluster/docs/attributes.rst
@@ -188,9 +188,18 @@ run. Typically these tasks will be short
 a backout. For example ``lint`` or ``python-unittest`` tasks.
 
 shipping_product
 ================
 For release promotion jobs, this is the product we are shipping.
 
 shipping_phase
 ==============
-For release promotion jobs, this is the shipping phase (promote, publish, ship).
+For release promotion jobs, this is the shipping phase (build, promote, push, ship).
+During the build phase, we build and sign shippable builds. During the promote phase,
+we generate l10n repacks and push to the candidates directory. During the push phase,
+we push to the releases directory. During the ship phase, we update bouncer, push to
+Google Play, version bump, mark as shipped in ship-it.
+
+Using the "snowman model", we depend on previous graphs if they're defined. So if we
+ask for a ``push`` (the head of the snowman) and point at the body and base, we only
+build the head. If we don't point at the body and base, we build the whole snowman
+(build, promote, push).
--- a/taskcluster/docs/kinds.rst
+++ b/taskcluster/docs/kinds.rst
@@ -195,16 +195,21 @@ Beetmover-repackage is beetmover but for
 between signing and packaging, such as OSX. For more details see the definitions
 of the Beetmover kind above and the repackage kind below.
 
 beetmover-cdns
 -------------------
 
 Beetmover-cdns publishes promoted releases to CDNs. This is part of release promotion.
 
+beetmover-source
+-------------------
+
+Beetmover-source publishes release source. This is part of release promotion.
+
 checksums-signing
 -----------------
 Checksums-signing take as input the checksums file generated by beetmover tasks
 and sign it via the signing scriptworkers. Returns the same file signed and
 additional detached signature.
 
 beetmover-checksums
 -------------------
@@ -219,23 +224,36 @@ kind depend on all the signed multi-loca
 in order to make the decision.
 
 push-apk
 --------
 PushApk publishes Android packages onto Google Play Store. Jobs of this kind take
 all the signed multi-locales (aka "multi") APKs for a given release and upload them
 all at once. They also depend on the breakpoint.
 
-release-notify-publish
+release-binary-transparency
+---------------------------
+Binary transparency creates a publicly verifiable log of binary shas for downstream
+release auditing. https://wiki.mozilla.org/Security/Binary_Transparency
+
+release-snap
+------------
+Generate an installer using Ubuntu's Snap format.
+
+release-notify-push
 ----------------------
-Notify when publishing a release.
+Notify when a release has been pushed to CDNs.
+
+release-notify-ship
+----------------------
+Notify when a release has been shipped.
 
 release-notify-promote
 ----------------------
-Notify when promoting a release.
+Notify when a release has been promoted.
 
 release-bouncer-sub
 -------------------
 Submits bouncer updates for releases.
 
 release-mark-as-shipped
 -----------------------
 Marks releases as shipped in Ship-It.
@@ -267,16 +285,28 @@ Top level Balrog blob submission & patch
 release-uptake-monitoring
 -------------------------
 Run uptake monitoring for releases.
 
 release-version-bump
 --------------------
 Bumps to the next version.
 
+release-source
+--------------------
+Generates source for the release
+
+release-source-signing
+--------------------
+Signs source for the release
+
+release-partner-repack
+----------------------
+Generates customized versions of releases for partners.
+
 repackage
 ---------
 Repackage tasks take a signed output and package them up into something suitable
 for shipping to our users. For example, on OSX we return a tarball as the signed output
 and this task would package that up as an Apple Disk Image (.dmg)
 
 repackage-l10n
 --------------
@@ -297,8 +327,20 @@ partials
 --------
 Partials takes the complete.mar files produced in previous tasks and generates partial
 updates between previous nightly releases and the new one. Requires a release_history
 in the parameters. See ``mach release-history`` if doing this manually.
 
 partials-signing
 ----------------
 Partials-signing takes the partial updates produced in Partials and signs them.
+
+post-balrog-dummy
+--------------------
+Dummy tasks to consolidate balrog dependencies to avoid taskcluster limits on number of dependencies per task.
+
+post-beetmover-dummy
+--------------------
+Dummy tasks to consolidate beetmover dependencies to avoid taskcluster limits on number of dependencies per task.
+
+post-beetmover-checksums-dummy
+------------------------------
+Dummy tasks to consolidate beetmover-checksums dependencies to avoid taskcluster limits on number of dependencies per task.
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -301,18 +301,18 @@ def target_tasks_mozilla_release(full_ta
 
     return [l for l, t in full_task_graph.tasks.iteritems() if
             filter_beta_release_tasks(t, parameters)]
 
 
 @_target_task('promote_firefox')
 def target_tasks_promote_firefox(full_task_graph, parameters, graph_config):
     """Select the superset of tasks required to promote a beta or release build
-    of firefox. This should include all non-android mozilla_beta tasks, plus
-    l10n, beetmover, balrog, etc."""
+    of firefox. This should include all non-android mozilla_{beta,release} tasks,
+    plus l10n, beetmover, balrog, etc."""
 
     beta_release_tasks = [l for l, t in full_task_graph.tasks.iteritems() if
                           filter_beta_release_tasks(t, parameters,
                                                     ignore_kinds=[],
                                                     allow_l10n=True)]
 
     def filter(task):
         platform = task.attributes.get('build_platform')
@@ -398,18 +398,18 @@ def target_tasks_ship_firefox(full_task_
         # TODO: checksums
 
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
 @_target_task('promote_devedition')
 def target_tasks_promote_devedition(full_task_graph, parameters, graph_config):
     """Select the superset of tasks required to promote a beta or release build
-    of devedition. This should include all non-android mozilla_beta tasks, plus
-    l10n, beetmover, balrog, etc."""
+    of devedition. This should include all non-android mozilla_{beta,release}
+    tasks, plus l10n, beetmover, balrog, etc."""
 
     beta_release_tasks = [l for l, t in full_task_graph.tasks.iteritems() if
                           filter_beta_release_tasks(t, parameters,
                                                     ignore_kinds=[],
                                                     allow_l10n=True)]
 
     def filter(task):
         platform = task.attributes.get('build_platform')