diff --git a/common/common.py b/common/common.py new file mode 100644 index 0000000000000000000000000000000000000000..c173456b1de5af9bf754563053067696a072f57e --- /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 2c9ed42f9e131a9ab8f68fb813de83c8c2bcf2e2..170160b6dec51aaa04b24224014d1101fda90925 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 489e1fd9652cf2546a018cc639bf4cf39a3f59f7..bf6ba65a2de610588f722a0b4eb995613361620a 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 b1983803af986a675cbd74efd9afca3bc6d6794c..a2ca71bdf1adabd9e8a8f34fced029e49eb75a66 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 f82733a35a6558d7b7faddf648c0d65e43d66b59..8db32a33d3670d913fc5987eff11b41a6636f255 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()