From 9d0751e2b1c357b4896a6948335010a3bd5a2308 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Mon, 16 Apr 2018 11:48:36 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20support=20jobs=20which=20don=E2=80=99t=20?= =?UTF-8?q?run=20unless=20triggered=20by=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- tools/ci/apply_bot_filter.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/ci/apply_bot_filter.py b/tools/ci/apply_bot_filter.py index 26f458836..29c8bb565 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: