This feature/fix allows the worker to download the autobuilder helper JSON files from the controller rather than having to store them in the yocto-autobuilder-helper repository. The process installs the file into the worker's builddir/yocto-autobuilder-helper path.
Signed-off-by: Thomas Goodwin <btgood...@geontech.com> --- builders.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/builders.py b/builders.py index 3d12969..35903de 100644 --- a/builders.py +++ b/builders.py @@ -18,6 +18,26 @@ extra_env = {} if os.environ.get('ABHELPER_JSON'): extra_env['ABHELPER_JSON'] = os.environ['ABHELPER_JSON'] +def add_abhelper_steps(factory): + """ + Adds FileDownload steps to the factory for each specified autobuilder + helper JSON file and installs the file in the worker's + builddir/yocto-autobuilder-helper/ path. + """ + abhelper_dir = os.path.expanduser("~/yocto-autobuilder-helper") + abhelper_configs = extra_env.get("ABHELPER_JSON", "config.json").split(" ") + for helper in abhelper_configs: + helper_name = os.path.basename(helper) + worker_helper = util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/" + helper_name) + master_helper = helper + if not helper.startswith("/"): + master_helper = os.path.join(abhelper_dir, helper) + factory.addStep(steps.FileDownload( + name="Download '{}'".format(helper_name), + mastersrc=master_helper, + workerdest=worker_helper, + haltOnFailure=True )) + @util.renderer def get_sstate_release_number(props): """ @@ -145,6 +165,7 @@ def create_builder_factory(): mode='incremental', haltOnFailure=True, name='Fetch yocto-autobuilder-helper')) + add_abhelper_steps(f) f.addStep(steps.SetProperties(properties=ensure_props_set)) f.addStep(WriteLayerInfo(name='Write main layerinfo.json', haltOnFailure=True)) f.addStep(steps.ShellCommand( @@ -213,6 +234,7 @@ def create_parent_builder_factory(buildername, waitname): mode='incremental', haltOnFailure=True, name='Fetch yocto-autobuilder-helper')) + add_abhelper_steps(factory) factory.addStep(WriteLayerInfo(name='Write main layerinfo.json', haltOnFailure=True)) factory.addStep(steps.ShellCommand( command=[ -- 2.17.1 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto