diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /taskcluster/taskgraph/task/signing.py | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'taskcluster/taskgraph/task/signing.py')
-rw-r--r-- | taskcluster/taskgraph/task/signing.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/taskcluster/taskgraph/task/signing.py b/taskcluster/taskgraph/task/signing.py new file mode 100644 index 000000000..a2a9ae3d6 --- /dev/null +++ b/taskcluster/taskgraph/task/signing.py @@ -0,0 +1,64 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from __future__ import absolute_import, print_function, unicode_literals + +import logging +import os + +from . import base +from taskgraph.util.templates import Templates + + +logger = logging.getLogger(__name__) +GECKO = os.path.realpath(os.path.join(__file__, '..', '..', '..', '..')) +ARTIFACT_URL = 'https://queue.taskcluster.net/v1/task/{}/artifacts/{}' +INDEX_URL = 'https://index.taskcluster.net/v1/task/{}' + + +class SigningTask(base.Task): + + def __init__(self, kind, name, task, attributes): + self.unsigned_artifact_label = task['unsigned-task']['label'] + super(SigningTask, self).__init__(kind, name, task=task['task'], + attributes=attributes) + + @classmethod + def load_tasks(cls, kind, path, config, params, loaded_tasks): + root = os.path.abspath(path) + + tasks = [] + for filename in config.get('jobs-from', []): + templates = Templates(root) + jobs = templates.load(filename, {}) + + for name, job in jobs.iteritems(): + for artifact in job['unsigned-task']['artifacts']: + url = ARTIFACT_URL.format('<{}>'.format('unsigned-artifact'), artifact) + job['task']['payload']['unsignedArtifacts'].append({ + 'task-reference': url + }) + attributes = job.setdefault('attributes', {}) + attributes.update({'kind': 'signing'}) + tasks.append(cls(kind, name, job, attributes=attributes)) + + return tasks + + def get_dependencies(self, taskgraph): + return [(self.unsigned_artifact_label, 'unsigned-artifact')] + + def optimize(self, params): + return False, None + + @classmethod + def from_json(cls, task_dict): + unsigned_task_label = task_dict['dependencies']['unsigned-artifact'] + task_dict['unsigned-task'] = { + 'label': unsigned_task_label + } + signing_task = cls(kind='build-signing', + name=task_dict['label'], + attributes=task_dict['attributes'], + task=task_dict) + return signing_task |