Bug 1335651 - Setup an index path in the gecko.cache namespace for toolchain builds. r=dustin

This allows to find them and optimize them out during the taskgraph
optimization phase, and will allow to get toolchain artifacts through a
mach command for developers.

The index path is generated similarly to git trees or mercurial
manifests, and allows to find the right task corresponding to the the
contents of the files in the task `extra.resources` along the toolchain
scripts.

`when.files-changed` is not used when a task has index paths because we
need tasks to happen independently of whether there were changes to
those files when the index or artifacts expire.
This commit is contained in:
Mike Hommey
2017-02-01 09:27:31 +09:00
parent f0d3b1086f
commit b1ef1c8c3b
7 changed files with 132 additions and 65 deletions

View File

@@ -51,6 +51,10 @@ task_description_schema = Schema({
# automatically
Optional('routes'): [basestring],
# The index paths where this task may be cached. Transforms are expected to
# fill these automatically when wanted.
Optional('index-paths'): [basestring],
# custom scopes for this task; any scopes required for the worker will be
# added automatically
Optional('scopes'): [basestring],
@@ -855,6 +859,7 @@ def build_task(config, tasks):
'task': task_def,
'dependencies': task.get('dependencies', {}),
'attributes': attributes,
'index-paths': task.get('index-paths'),
'when': task.get('when', {}),
}