From 2ed6eefb9552e3bd39fd556c9008eb2cf537bbc7 Mon Sep 17 00:00:00 2001 From: miao_kaibo Date: Tue, 20 Oct 2020 17:16:44 +0800 Subject: [PATCH] add selection branch for frame code --- common/common.py | 14 +++++++++++++ common/parser_config.py | 21 ++++++++++++++++++- config/config.ini | 2 ++ core/runner.py | 45 +++++++++++++++++++++++++++++++++++++---- openeuler_obs.py | 14 +++++++++---- 5 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 common/common.py diff --git a/common/common.py b/common/common.py new file mode 100644 index 0000000..c173456 --- /dev/null +++ b/common/common.py @@ -0,0 +1,14 @@ +#/bin/env python3 +# -*- encoding=utf8 -*- +""" +created by: miaokaibo +date: 2020-10-20 15:50 +function for all +""" + + +def str_to_bool(s): + """ + change string to bool + """ + return s.lower() in ("yes", "true", "t", "1") diff --git a/common/parser_config.py b/common/parser_config.py index 2c9ed42..170160b 100644 --- a/common/parser_config.py +++ b/common/parser_config.py @@ -8,6 +8,9 @@ parser config.ini """ import os import configparser +from common import common +#import common + class ParserConfigIni(object): @@ -26,6 +29,7 @@ class ParserConfigIni(object): self.config = configparser.ConfigParser() self.config.read(config_path, encoding='utf-8') self._init_update_enabled_flag() + self._init_ignored_repo() def _init_update_enabled_flag(self): """ @@ -33,8 +37,9 @@ class ParserConfigIni(object): return: None """ branch_list = self.config.options("update_enable") + print(branch_list) for b in branch_list: - self.update_enabled_flag[b] = self.config.get("update_enable", b) + self.update_enabled_flag[b] = common.str_to_bool(self.config.get("update_enable", b)) def get_update_enabled_flag(self): """ @@ -43,6 +48,20 @@ class ParserConfigIni(object): """ return self.update_enabled_flag + def _init_ignored_repo(self): + """ + init ignored repo list + return: None + """ + self.ignored_repos = self.config.get("ignore_repo", "name").split(" ") + + def get_ignored_repo(self): + """ + get ignored repo + return: ignored repo list + """ + return self.ignored_repos + if __name__ == "__main__": p = ParserConfigIni() diff --git a/config/config.ini b/config/config.ini index 489e1fd..bf6ba65 100644 --- a/config/config.ini +++ b/config/config.ini @@ -3,3 +3,5 @@ master = True openEuler-20.03-LTS = True openEuler-20.03-LTS-Next = True openEuler-20.09 = True +[ignore_repo] +name = ci_check build diff --git a/core/runner.py b/core/runner.py index b198380..a2ca71b 100644 --- a/core/runner.py +++ b/core/runner.py @@ -7,6 +7,7 @@ date: 2020-10-20 9:55 main script for running """ from common.log_obs import log +from common.parser_config import ParserConfigIni class Runner(object): @@ -20,13 +21,49 @@ class Runner(object): return: """ self.kwargs = kwargs - print(self.kwargs) - + log.info(self.kwargs) + parc = ParserConfigIni() + self.update_enabled_flag = parc.get_update_enabled_flag() + self.ignore_list = parc.get_ignored_repo() + + def _obs_meta_action(self): + """ + action basis on change of obs_meta + return: + """ + log.debug("obs_meta change") + # TODO + + def _save_package_info(self): + """ + save package info for manual operation later + return: + """ + log.debug("save package info") + # TODO + + def _update_package(self): + """ + update package code for obs + return: + """ + log.debug("update package code") + # TODO + def run(self): """ run main return: """ - log.debug("test") - + log.debug(self.ignore_list) + log.debug(self.update_enabled_flag) + if self.kwargs["repostory"] == "obs_meta": + self._obs_meta_action() + elif self.kwargs["repostory"] not in self.ignore_list: + if not self.update_enabled_flag[self.kwargs["branch"].lower()]: + log.debug("can not update branch:%s, package: %s" + % (self.kwargs["branch"], self.kwargs["repostory"])) + self._save_package_info() + else: + self._update_package() diff --git a/openeuler_obs.py b/openeuler_obs.py index f82733a..8db32a3 100644 --- a/openeuler_obs.py +++ b/openeuler_obs.py @@ -12,13 +12,19 @@ from core.runner import Runner #ArgumentParser par = argparse.ArgumentParser() -par.add_argument("-o", "--obs", help="Local path of obs_meta repository", required=True) -par.add_argument("-b", "--branch", default=None, help="gitee repostory branch name", required=False) -par.add_argument("-p", "--project", default=None, help="obs project name", required=False) +par.add_argument("-o", "--obs", default=None, + help="Local path of obs_meta repository", required=False) +par.add_argument("-r", "--repostory", + help="gitee repository name", required=True) +par.add_argument("-b", "--branch", default="master", + help="gitee repostory branch name", required=False) +par.add_argument("-p", "--project", default=None, + help="obs project name", required=False) args = par.parse_args() #apply obs_meta_path = args.obs log.info(obs_meta_path) -run = Runner(obs_path=args.obs, project=args.project) +run = Runner(obs_path=args.obs, project=args.project, + repostory=args.repostory, branch=args.branch) run.run() -- Gitee