Bug 1273633: a non-branch-specific taskgraph definition; r=garndt
authorDustin J. Mitchell <dustin@mozilla.com>
Tue, 17 May 2016 21:26:31 +0000
changeset 338990 ee5bdc58edab47abddbb6ea6fc6474a46316a8b2
parent 338989 8211dd011b389232ee2a1c130d8298e6aef7be8a
child 338991 3fb747099412c45b769155857ba937467aa608de
push id1183
push userraliiev@mozilla.com
push dateMon, 05 Sep 2016 20:01:49 +0000
treeherdermozilla-release@3148731bed45 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgarndt
bugs1273633
milestone49.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 1273633: a non-branch-specific taskgraph definition; r=garndt MozReview-Commit-ID: 3SmqPNV93va
.taskcluster.yml
copy from testing/taskcluster/tasks/decision/try.yml
copy to .taskcluster.yml
--- a/testing/taskcluster/tasks/decision/try.yml
+++ b/.taskcluster.yml
@@ -1,36 +1,54 @@
 ---
+version: 0
 metadata:
-  name: 'Taskcluster decision task for {{project}}'
-  description: |
-    Try push for {{owner}}.
+  name: 'Taskcluster tasks for Gecko'
+  description: "The taskcluster task graph for Gecko trees"
   owner: mozilla-taskcluster-maintenance@mozilla.com
-  source: "{{{source}}}"
+  source: {{{source}}}
 
 scopes:
   # Note the below scopes are insecure however these get overriden on the server
   # side to whatever scopes are set by mozilla-taskcluster.
   - queue:*
   - docker-worker:*
   - scheduler:*
 
+# Available mustache parameters (see the mozilla-taskcluster source):
+#
+# - owner:          push user (email address)
+# - source:         URL of this YAML file
+# - url:            repository URL
+# - project:        alias for the destination repository (basename of
+#                   the repo url)
+# - level:          SCM level of the destination repository
+#                   (1 = try, 3 = core)
+# - revision:       (short) hg revision of the head of the push
+# - revision_hash:  (long) hg revision of the head of the push
+# - comment:        comment of the push
+# - pushlog_id:     id in the pushlog table of the repository
+#
+# and functions:
+# - as_slugid:      convert a label into a slugId
+# - from_now:       generate a timestamp at a fixed offset from now
+
 tasks:
   - taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
     reruns: 3
     task:
       created: '{{now}}'
       deadline: '{{#from_now}}1 day{{/from_now}}'
       expires: '{{#from_now}}14 day{{/from_now}}'
       metadata:
         owner: mozilla-taskcluster-maintenance@mozilla.com
         source: {{{source}}}
-        name: "[tc] Initial decision task for try"
+        name: "Gecko Decision Task"
         description: |
-          Create the task-graph for a try push
+            The task that creates all of the other tasks in the task graph
 
       workerType: "gecko-decision"
       provisionerId: "aws-provisioner-v1"
 
       tags:
         createdForUser: {{owner}}
 
       scopes:
@@ -42,39 +60,34 @@ tasks:
 
       routes:
         - "index.gecko.v2.{{project}}.latest.firefox.decision"
         - "tc-treeherder.{{project}}.{{revision_hash}}"
         - "tc-treeherder-stage.{{project}}.{{revision_hash}}"
 
       payload:
         env:
+          # checkout-gecko uses these to check out the source; the inputs
+          # to `mach taskgraph decision` are all on the command line.
           GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-central'
           GECKO_HEAD_REPOSITORY: '{{{url}}}'
           GECKO_HEAD_REF: '{{revision}}'
           GECKO_HEAD_REV: '{{revision}}'
 
         cache:
-          # The taskcluster-vcs tooling stores the large clone caches in this
-          # directory and will reuse them for new requests this saves about 20s~ and
-          # is the most generic cache possible.
           level-{{level}}-{{project}}-tc-vcs-public-sources: /home/worker/.tc-vcs/
           level-{{level}}-{{project}}-gecko-decision: /home/worker/workspace
 
         features:
           taskclusterProxy: true
 
         # Note: This task is built server side without the context or tooling that
         # exist in tree so we must hard code the version
         image: 'taskcluster/decision:0.1.0'
 
-        # Virtually no network or other potentially risky operations happen as part
-        # of the task timeout aside from the initial clone. We intentionally have
-        # set this to a lower value _all_ decision tasks should use a root
-        # repository which is cached.
         maxRunTime: 1800
 
         command:
           - /bin/bash
           - -cx
           - >
             mkdir -p /home/worker/artifacts &&
             checkout-gecko workspace &&