4 name: 'Taskcluster tasks for Gecko'
5 description: "The taskcluster task graph for Gecko trees"
6 owner: mozilla-taskcluster-maintenance@mozilla.com
10 # Note the below scopes are insecure however these get overriden on the server
11 # side to whatever scopes are set by mozilla-taskcluster.
16 # This file undergoes substitution to create tasks. For on-push tasks, that
17 # substitution is done by mozilla-taskcluster. For cron tasks, that substitution
18 # is done by `taskcluster/taskgraph/cron/decision.py`. If you change any of the
19 # template parameters, please do so in all three places!
21 # Available template parameters:
24 # - owner: push user (email address)
25 # - source: URL of this YAML file
26 # - url: repository URL
27 # - project: alias for the destination repository (basename of
29 # - level: SCM level of the destination repository
31 # - revision: hg revision of the head of the push
32 # - comment: comment of the push
33 # - pushlog_id: id in the pushlog table of the repository
36 # - as_slugid: convert a label into a slugId
37 # - from_now: generate a timestamp at a fixed offset from now
38 # - shellquote: quote the contents for injection into shell
40 # The resulting tasks' taskGroupId will be equal to the taskId of the first
41 # task listed here, which should be the decision task. This gives other tools
42 # an easy way to determine the ID of the decision task that created a
46 - taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
49 deadline: '{{#from_now}}1 day{{/from_now}}'
50 expires: '{{#from_now}}365 day{{/from_now}}'
52 owner: mozilla-taskcluster-maintenance@mozilla.com
54 name: "Gecko Decision Task"
56 The task that creates all of the other tasks in the task graph
58 workerType: "gecko-decision"
59 provisionerId: "aws-provisioner-v1"
62 createdForUser: {{owner}}
65 - "index.gecko.v2.{{project}}.latest.firefox.decision"
66 - "tc-treeherder.v2.{{project}}.{{revision}}.{{pushlog_id}}"
67 - "tc-treeherder-stage.v2.{{project}}.{{revision}}.{{pushlog_id}}"
68 - "notify.email.{{owner}}.on-failed"
69 - "notify.email.{{owner}}.on-exception"
73 # checkout-gecko uses these to check out the source; the inputs
74 # to `mach taskgraph decision` are all on the command line.
75 GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-unified'
76 GECKO_HEAD_REPOSITORY: '{{{url}}}'
77 GECKO_HEAD_REF: '{{revision}}'
78 GECKO_HEAD_REV: '{{revision}}'
79 HG_STORE_PATH: /home/worker/checkouts/hg-store
82 level-{{level}}-checkouts: /home/worker/checkouts
85 taskclusterProxy: true
88 # Note: This task is built server side without the context or tooling that
89 # exist in tree so we must hard code the hash
90 # XXX Changing this will break Chain of Trust without an associated puppet and
92 image: 'taskcluster/decision:0.1.8@sha256:195d8439c8e90d59311d877bd2a8964849b2e43bfc6c234092618518d8b2891b'
96 # TODO use mozilla-unified for the base repository once the tc-vcs
97 # tar.gz archives are created or tc-vcs isn't being used.
99 - /home/worker/bin/run-task
100 - '--vcs-checkout=/home/worker/checkouts/gecko'
105 cd /home/worker/checkouts/gecko &&
106 ln -s /home/worker/artifacts artifacts &&
107 ./mach --log-no-times taskgraph decision
108 --pushlog-id='{{pushlog_id}}'
109 --pushdate='{{pushdate}}'
110 --project='{{project}}'
111 --message={{#shellquote}}{{{comment}}}{{/shellquote}}
114 --base-repository='https://hg.mozilla.org/mozilla-central'
115 --head-repository='{{{url}}}'
116 --head-ref='{{revision}}'
117 --head-rev='{{revision}}'
122 path: '/home/worker/artifacts'
123 expires: '{{#from_now}}364 days{{/from_now}}'