diff --git a/CI/build/platformio-builder.py b/CI/build/platformio-builder.py index 840b365049..ef0105820d 100644 --- a/CI/build/platformio-builder.py +++ b/CI/build/platformio-builder.py @@ -3,6 +3,12 @@ import subprocess import sys +# Libraries that are not meant to be checked in CI by default +DEFAULT_IGNORED_LIBRARIES = ( + "keyboard", + "mouse" +) + def run_platformio(example_path, boards): return subprocess.call( @@ -10,9 +16,13 @@ def run_platformio(example_path, boards): ) -def collect_examples(libs_dir): +def collect_examples(libs_dir, ignored_libraries=None): + ignored_libraries = ignored_libraries or [] examples = [] for lib in os.listdir(libs_dir): + if lib.lower() in ignored_libraries: + print(f"Skipping examples from the `{lib}` library...") + continue lib_dir = os.path.join(libs_dir, lib) examples_dir = os.path.join(lib_dir, "examples") if os.path.isdir(examples_dir): @@ -27,6 +37,9 @@ def collect_examples(libs_dir): parser.add_argument( "-b", "--board", action="append", help="board ID used for PlatformIO project" ) +parser.add_argument( + "-i", "--ignore-library", action="append", help="Library name to ignore when collecting project examples" +) def main(): @@ -35,8 +48,12 @@ def main(): if boards is None: boards = ["nucleo_f401re"] + ignored_libraries = args.ignore_library + if ignored_libraries is None: + ignored_libraries = DEFAULT_IGNORED_LIBRARIES + libs_dir = os.path.join(os.environ["GITHUB_WORKSPACE"], "libraries") - if any(run_platformio(example, boards) for example in collect_examples(libs_dir)): + if any(run_platformio(example, boards) for example in collect_examples(libs_dir, ignored_libraries)): sys.exit(1)