Bug 1405413 - Pre: Allow toolchain tasks to (un)set sparse-profile. r=glandium

Specifying anything but "toolchain-build" appears to have cache
errors, which I cannot understand.  These cache errors can be
addressed in follow-up, if and when toolchain tasks require new sparse
profiles.  But specifying `null` avoids the sparse profile details
entirely, which works nicely for `android-gradle-dependencies`, which
is build-like and requires a fairly complete checkout.

MozReview-Commit-ID: L3R8UIDjgqW

--HG--
extra : rebase_source : 096a180238d1b5eeffbb0e2d9d538def162e877f
This commit is contained in:
Nick Alexander 2017-10-13 10:27:37 -07:00
parent 0622c6d0b0
commit 6500c992fe

View File

@ -50,6 +50,13 @@ toolchain_run_schema = Schema({
# If true, tc-vcs will be enabled. Not supported on Windows.
Required('tc-vcs', default=True): bool,
# Sparse profile to give to checkout using `run-task`. If given,
# a filename in `build/sparse-profiles`. Defaults to
# "toolchain-build", i.e., to
# `build/sparse-profiles/toolchain-build`. If `None`, instructs
# `run-task` to not use a sparse profile at all.
Required('sparse-profile', default='toolchain-build'): Any(basestring, None),
# Paths/patterns pointing to files that influence the outcome of a
# toolchain build.
Optional('resources'): [basestring],
@ -150,10 +157,15 @@ def docker_worker_toolchain(config, job, taskdesc):
if args:
args = ' ' + shell_quote(*args)
sparse_profile = []
if run.get('sparse-profile'):
sparse_profile = ['--sparse-profile',
'build/sparse-profiles/{}'.format(run['sparse-profile'])]
worker['command'] = [
'/builds/worker/bin/run-task',
'--vcs-checkout=/builds/worker/workspace/build/src',
'--sparse-profile', 'build/sparse-profiles/toolchain-build',
] + sparse_profile + [
'--',
'bash',
'-c',