subprocess.call() does not by default return a status value.
Update the commands to add shell=True which forces a return value.
Also convert the commands to a single string rather than a list as
this plays more nicely with both linux and windows.
Also fix a spurious :
Currently the following commands in examples.py,
do_import()
do_deploy()
do_versionning()
do_clone()
all return a success status (ie 0) irrespective of any errors
originating from their sub-functions.
This PR fixes this. Now these commands will return one of:
0 - success
1 - general failure
x - failure returned by a subprocess.call function
If an example's GitHub repository contains multiple child examples, the
script was incorrectly filtering out all the child examples when
compiling and exporting. This patch now handles this case correctly.
This adds an example clone and deploy step that allows you to modify
each top level repository before pulling in the rest of the example's
dependencies. This allows us to not pull in a copy of mbed-os for each
example in CI and instead symbolic link the already cloned copy, saving
valuable time and disk space
Adding the new compile option allows the marking of a set of examples to
indicate whether they should be compiled or not. For the update process
examples that are not compiled will not be auto updated irrespective of
that setting.
Other changes to make return logic from some functions in update.py more
efficient and some typos in the lib file.
Changes:
Refactor examples.py to add a new command line option to provide an update
tag.
Refactor examples.py to add new functionality to update the version of
mbed-os in the examples to a supplied tag.
Refactor examples.py to make cloning the example repos, updating their
mbed-os version and compiling, into library functions and move to a new
library module.
Refactor the format of the examples.json file to make it compatible with
both examples.py and update.py.
Refactor update.py so that examples are test compiled prior to updating.
Refactor update.py so that only examples tagged as auto-updatable and that
fully compile are automatically updated.