buildman: Provide an internal option to clean the outpur dir
For testing it is useful to clean the output directory before running a test. This avoids a test interfering with the results of a subsequent test by leaving data around. Add this feature as an optional parameter to the control logic. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
fb3954f9ea
commit
883a321a4b
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import board
|
import board
|
||||||
|
|
@ -78,7 +79,8 @@ def ShowActions(series, why_selected, boards_selected, builder, options):
|
||||||
print ('Total boards to build for each commit: %d\n' %
|
print ('Total boards to build for each commit: %d\n' %
|
||||||
why_selected['all'])
|
why_selected['all'])
|
||||||
|
|
||||||
def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
|
def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
|
||||||
|
clean_dir=False):
|
||||||
"""The main control code for buildman
|
"""The main control code for buildman
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -93,6 +95,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
|
||||||
board: Boards() object to use, containing a list of available
|
board: Boards() object to use, containing a list of available
|
||||||
boards. If this is None it will be created and scanned.
|
boards. If this is None it will be created and scanned.
|
||||||
"""
|
"""
|
||||||
|
global builder
|
||||||
|
|
||||||
if options.full_help:
|
if options.full_help:
|
||||||
pager = os.getenv('PAGER')
|
pager = os.getenv('PAGER')
|
||||||
if not pager:
|
if not pager:
|
||||||
|
|
@ -209,6 +213,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
|
||||||
else:
|
else:
|
||||||
dirname = 'current'
|
dirname = 'current'
|
||||||
output_dir = os.path.join(options.output_dir, dirname)
|
output_dir = os.path.join(options.output_dir, dirname)
|
||||||
|
if clean_dir and os.path.exists(output_dir):
|
||||||
|
shutil.rmtree(output_dir)
|
||||||
builder = Builder(toolchains, output_dir, options.git_dir,
|
builder = Builder(toolchains, output_dir, options.git_dir,
|
||||||
options.threads, options.jobs, gnu_make=gnu_make, checkout=True,
|
options.threads, options.jobs, gnu_make=gnu_make, checkout=True,
|
||||||
show_unknown=options.show_unknown, step=options.step)
|
show_unknown=options.show_unknown, step=options.step)
|
||||||
|
|
@ -230,6 +236,9 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
|
||||||
|
|
||||||
if series:
|
if series:
|
||||||
commits = series.commits
|
commits = series.commits
|
||||||
|
# Number the commits for test purposes
|
||||||
|
for commit in range(len(commits)):
|
||||||
|
commits[commit].sequence = commit
|
||||||
else:
|
else:
|
||||||
commits = None
|
commits = None
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue