Bug 1252948: support for periodic taskgraphs; r=Callek,jonasfj,kmoir

This adds `.cron.yml` and a new mach command to interpret it.  While
functionality is limited to nightlies right now, there is room to expand to
more diverse periodic tasks.  Let your imagination run wild!

MozReview-Commit-ID: KxQkaUbsjQs
This commit is contained in:
Dustin J. Mitchell
2017-01-18 19:45:53 +00:00
parent c7fb42028c
commit 0064836f97
11 changed files with 473 additions and 8 deletions

View File

@@ -75,13 +75,13 @@ def create_tasks(taskgraph, label_to_taskid, params):
for f in futures.as_completed(deps_fs):
f.result()
fs[task_id] = e.submit(_create_task, session, task_id,
fs[task_id] = e.submit(create_task, session, task_id,
taskid_to_label[task_id], task_def)
# Schedule tasks as many times as task_duplicates indicates
for i in range(1, attributes.get('task_duplicates', 1)):
# We use slugid() since we want a distinct task id
fs[task_id] = e.submit(_create_task, session, slugid(),
fs[task_id] = e.submit(create_task, session, slugid(),
taskid_to_label[task_id], task_def)
# Wait for all futures to complete.
@@ -89,7 +89,7 @@ def create_tasks(taskgraph, label_to_taskid, params):
f.result()
def _create_task(session, task_id, label, task_def):
def create_task(session, task_id, label, task_def):
# create the task using 'http://taskcluster/queue', which is proxied to the queue service
# with credentials appropriate to this job.