Bug 1368097 - Update standards link. r=smaug
[gecko.git] / .taskcluster.yml
bloba1a4914339dd2224d139e6914cc2d2661d4ea90c
1 ---
2 version: 0
3 metadata:
4   name: 'Taskcluster tasks for Gecko'
5   description: "The taskcluster task graph for Gecko trees"
6   owner: mozilla-taskcluster-maintenance@mozilla.com
7   source: {{{source}}}
9 scopes:
10   # Note the below scopes are insecure however these get overriden on the server
11   # side to whatever scopes are set by mozilla-taskcluster.
12   - queue:*
13   - docker-worker:*
14   - scheduler:*
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:
23 # - now:            current time
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
28 #                   the repo url)
29 # - level:          SCM level of the destination repository
30 #                   (1 = try, 3 = core)
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
35 # and functions:
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
43 # particular group.
45 tasks:
46   - taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
47     task:
48       created: '{{now}}'
49       deadline: '{{#from_now}}1 day{{/from_now}}'
50       expires: '{{#from_now}}365 day{{/from_now}}'
51       metadata:
52         owner: mozilla-taskcluster-maintenance@mozilla.com
53         source: {{{source}}}
54         name: "Gecko Decision Task"
55         description: |
56             The task that creates all of the other tasks in the task graph
58       workerType: "gecko-decision"
59       provisionerId: "aws-provisioner-v1"
61       tags:
62         createdForUser: {{owner}}
64       routes:
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"
71       payload:
72         env:
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
81         cache:
82           level-{{level}}-checkouts: /home/worker/checkouts
84         features:
85           taskclusterProxy: true
86           chainOfTrust: 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
91         # scriptworker patch!
92         image: 'taskcluster/decision:0.1.8@sha256:195d8439c8e90d59311d877bd2a8964849b2e43bfc6c234092618518d8b2891b'
94         maxRunTime: 1800
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.
98         command:
99           - /home/worker/bin/run-task
100           - '--vcs-checkout=/home/worker/checkouts/gecko'
101           - '--'
102           - bash
103           - -cx
104           - >
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}}
112               --owner='{{owner}}'
113               --level='{{level}}'
114               --base-repository='https://hg.mozilla.org/mozilla-central'
115               --head-repository='{{{url}}}'
116               --head-ref='{{revision}}'
117               --head-rev='{{revision}}'
119         artifacts:
120           'public':
121             type: 'directory'
122             path: '/home/worker/artifacts'
123             expires: '{{#from_now}}364 days{{/from_now}}'
125       extra:
126         treeherder:
127           symbol: D