From: Ivan Grokhotkov Date: Mon, 16 Apr 2018 03:48:36 +0000 (+0800) Subject: ci: support jobs which don’t run unless triggered by name X-Git-Tag: v3.1-beta1~224^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9d0751e2b1c357b4896a6948335010a3bd5a2308;p=esp-idf ci: support jobs which don’t run unless triggered by name By default, any job will run unless a filter is given, in that case the filter will determine if the job should run or not. Some jobs do not need to be run by default, and should only be triggered using the bot. For such jobs, BOT_NEEDS_TRIGGER_BY_NAME can added to environment variables. --- diff --git a/tools/ci/apply_bot_filter.py b/tools/ci/apply_bot_filter.py index 26f458836e..29c8bb565e 100755 --- a/tools/ci/apply_bot_filter.py +++ b/tools/ci/apply_bot_filter.py @@ -28,8 +28,8 @@ def parse_filter(filter_name): return filters -def process_filter(filter_name, ci_name): - execute = True +def process_filter(execute_by_default, filter_name, ci_name): + execute = execute_by_default # bot message is case insensitive (processed with lower case). so we also convert ci_name to lower case. ci_name = ci_name.lower() @@ -51,8 +51,12 @@ def process_filter(filter_name, ci_name): if __name__ == "__main__": - need_to_execute = process_filter("BOT_STAGE_FILTER", os.getenv("CI_JOB_STAGE")) \ - and process_filter("BOT_JOB_FILTER", os.getenv("CI_JOB_NAME")) + execute_by_default = True + if os.getenv("BOT_NEEDS_TRIGGER_BY_NAME", "0") == "1": + execute_by_default = False + + need_to_execute = process_filter(True, "BOT_STAGE_FILTER", os.getenv("CI_JOB_STAGE")) \ + and process_filter(execute_by_default, "BOT_JOB_FILTER", os.getenv("CI_JOB_NAME")) if need_to_execute: sys.exit(0) else: