Bug 1415619: tc-trust fixes
MozReview-Commit-ID: 2oeOuGCzCDm
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -1,9 +1,9 @@
-trust-domain: mozilla
+trust-domain: gecko
treeherder:
group-names:
'cram': 'Cram tests'
'mocha': 'Mocha unit tests'
'py': 'Python unit tests'
'tc': 'Executed by TaskCluster'
'tc-A': 'Android Gradle tests executed by TaskCluster'
'tc-e10s': 'Executed by TaskCluster with e10s'
--- a/taskcluster/taskgraph/transforms/docker_image.py
+++ b/taskcluster/taskgraph/transforms/docker_image.py
@@ -92,11 +92,11 @@ def fill_template(config, tasks):
},
'chain-of-trust': True,
'docker-in-docker': True,
'taskcluster-proxy': True,
'max-run-time': 7200,
},
}
- add_optimization(config, task, digest=context_hash)
+ add_optimization(config, taskdesc, image_name, digest=context_hash)
yield taskdesc
--- a/taskcluster/taskgraph/transforms/job/toolchain.py
+++ b/taskcluster/taskgraph/transforms/job/toolchain.py
@@ -97,16 +97,18 @@ def get_digest_data(config, run, taskdes
@run_job_using("docker-worker", "toolchain-script", schema=toolchain_run_schema)
def docker_worker_toolchain(config, job, taskdesc):
run = job['run']
taskdesc['run-on-projects'] = ['trunk', 'try']
worker = taskdesc['worker']
worker['chain-of-trust'] = True
+ name = taskdesc['label'].replace('{}-'.format(config.kind), '', 1)
+
# Allow the job to specify where artifacts come from, but add
# public/build if it's not there already.
artifacts = worker.setdefault('artifacts', [])
if not any(artifact.get('name') == 'public/build' for artifact in artifacts):
docker_worker_add_public_artifacts(config, job, taskdesc)
docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
support_vcs_checkout(config, job, taskdesc, sparse=True)
@@ -150,32 +152,34 @@ def docker_worker_toolchain(config, job,
wrapper, run['script'], args)
]
attributes = taskdesc.setdefault('attributes', {})
attributes['toolchain-artifact'] = run['toolchain-artifact']
if 'toolchain-alias' in run:
attributes['toolchain-alias'] = run['toolchain-alias']
- add_optimization(config, taskdesc, digest_data=get_digest_data(config, run, taskdesc))
+ add_optimization(config, taskdesc, name, digest_data=get_digest_data(config, run, taskdesc))
@run_job_using("generic-worker", "toolchain-script", schema=toolchain_run_schema)
def windows_toolchain(config, job, taskdesc):
run = job['run']
taskdesc['run-on-projects'] = ['trunk', 'try']
worker = taskdesc['worker']
worker['artifacts'] = [{
'path': r'public\build',
'type': 'directory',
}]
worker['chain-of-trust'] = True
+ name = taskdesc['label'].replace('{}-'.format(config.kind), '', 1)
+
docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
env = worker['env']
env.update({
'MOZ_BUILD_DATE': config.params['moz_build_date'],
'MOZ_SCM_LEVEL': config.params['level'],
'MOZ_AUTOMATION': '1',
})
@@ -206,9 +210,9 @@ def windows_toolchain(config, job, taskd
bash, run['script'], args)
]
attributes = taskdesc.setdefault('attributes', {})
attributes['toolchain-artifact'] = run['toolchain-artifact']
if 'toolchain-alias' in run:
attributes['toolchain-alias'] = run['toolchain-alias']
- add_optimization(config, taskdesc, digest_data=get_digest_data(config, run, taskdesc))
+ add_optimization(config, taskdesc, name, digest_data=get_digest_data(config, run, taskdesc))
--- a/taskcluster/taskgraph/util/cached_tasks.py
+++ b/taskcluster/taskgraph/util/cached_tasks.py
@@ -11,28 +11,27 @@ TARGET_CACHE_INDEX = (
'{trust_domain}.cache.level-{level}.{kind}.v2.{name}.hash.{digest}'
)
EXTRA_CACHE_INDEXES = [
'{trust_domain}.cache.level-{level}.{kind}.v2.{name}.latest',
'{trust_domain}.cache.level-{level}.{kind}.v2.{name}.pushdate.{year}.{month}-{day}-{pushtime}',
]
-def add_optimization(config, taskdesc, digest=None, digest_data=None):
- if digest is None == digest_data is None:
+def add_optimization(config, taskdesc, name, digest=None, digest_data=None):
+ if (digest is None) == (digest_data is None):
raise Exception("Must pass exactly one of `digest` and `digest_data`.")
if digest is None:
digest = hashlib.sha256('\n'.join(digest_data)).hexdigest()
- label = taskdesc['label']
subs = {
'trust_domain': config.graph_config['trust-domain'],
- 'kind': config.kind,
- 'name': label.replace('%s-' % config.kind, ''),
- 'digest': hashlib.sha256('\n'.join(digest_data)).hexdigest()
+ 'kind': config.kind.rstrip('s'),
+ 'name': name,
+ 'digest': digest,
}
# We'll try to find a cached version of the toolchain at levels above
# and including the current level, starting at the highest level.
index_routes = []
for level in reversed(range(int(config.params['level']), 4)):
subs['level'] = level
index_routes.append(TARGET_CACHE_INDEX.format(**subs))