Bug 1395717 - Use filename source-test tasks are defined in as part of their label, r=dustin

This creates a new "job-from" field that contains the relative filename the job was defined
in. The filename is relative to 'config.path'. If the task came from the 'jobs' key defined
in kind.yml, this field will be set to 'kind.yml'.

MozReview-Commit-ID: 9e1tEb6XuZT
This commit is contained in:
Andrew Halberstadt
2017-08-31 16:38:08 -04:00
parent d821eebb36
commit ada64d6ce5
11 changed files with 69 additions and 55 deletions

View File

@@ -5,7 +5,6 @@
from __future__ import absolute_import, print_function, unicode_literals
import logging
import itertools
from ..util.templates import merge
from ..util.yaml import load_yaml
@@ -33,15 +32,19 @@ def loader(kind, path, config, params, loaded_tasks):
"""
def jobs():
defaults = config.get('job-defaults')
jobs = config.get('jobs', {}).iteritems()
jobs_from = itertools.chain.from_iterable(
load_yaml(path, filename).iteritems()
for filename in config.get('jobs-from', {}))
for name, job in itertools.chain(jobs, jobs_from):
for name, job in config.get('jobs', {}).iteritems():
if defaults:
job = merge(defaults, job)
job['job-from'] = 'kind.yml'
yield name, job
for filename in config.get('jobs-from', []):
for name, job in load_yaml(path, filename).iteritems():
if defaults:
job = merge(defaults, job)
job['job-from'] = filename
yield name, job
for name, job in jobs():
job['name'] = name
logger.debug("Generating tasks for {} {}".format(kind, name))