From 9da64aa4de5a275ec4f7604503d363661c9fe98f Mon Sep 17 00:00:00 2001 From: tracedeng <56997132@qq.com> Date: Fri, 25 Sep 2020 18:19:46 +0800 Subject: [PATCH] feature: version update of lts branch is forbidden --- src/ac/acl/spec/check_spec.py | 19 +++++++++++++++++++ src/ac/framework/ac.py | 7 ++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/ac/acl/spec/check_spec.py b/src/ac/acl/spec/check_spec.py index 79ec285..468b616 100644 --- a/src/ac/acl/spec/check_spec.py +++ b/src/ac/acl/spec/check_spec.py @@ -58,6 +58,17 @@ class CheckSpec(BaseCheck): return False + def _is_lts_branch(self): + """ + check if lts branch + :return boolean + """ + if self._tbranch: + if "lts" in self._tbranch.lower(): + return True + + return False + def check_version(self): """ 检查当前版本号是否比上一个commit新 @@ -81,6 +92,13 @@ class CheckSpec(BaseCheck): self._ex_pkgship(spec_o) + # if lts branch, version update is forbidden + if self._is_lts_branch(): + logger.debug("lts branch {}".format(self._tbranch)) + if RPMSpecAdapter.compare_version(self._spec.version, spec_o.version) == 1: + logger.error("version update of lts branch is forbidden") + return FAILED + if self._spec > spec_o: return SUCCESS elif self._spec < spec_o: @@ -181,5 +199,6 @@ class CheckSpec(BaseCheck): def __call__(self, *args, **kwargs): logger.info("check {} spec ...".format(self._repo)) self._ex_exclusive_arch() + self._tbranch = kwargs.get("tbranch", None) return self.start_check() diff --git a/src/ac/framework/ac.py b/src/ac/framework/ac.py index c508419..f2febf6 100644 --- a/src/ac/framework/ac.py +++ b/src/ac/framework/ac.py @@ -41,7 +41,7 @@ class AC(object): logger.debug("check list: {}".format(self._ac_check_elements)) - def check_all(self, workspace, repo): + def check_all(self, workspace, repo, **kwargs): """ 门禁检查 :param workspace: @@ -84,7 +84,7 @@ class AC(object): # do ac check try: - result = entry() + result = entry(**kwargs) logger.debug("check result {} {}".format(element, result)) except Exception as exc: logger.exception("check exception, {} {}".format(element, exc)) @@ -146,6 +146,7 @@ if "__main__" == __name__: args = argparse.ArgumentParser() args.add_argument("-w", type=str, dest="workspace", help="workspace where to find source") args.add_argument("-r", type=str, dest="repo", help="repo name") + args.add_argument("-b", type=str, dest="tbranch", help="branch merge to") args.add_argument("-n", type=str, dest="owner", default="src-openeuler", help="gitee owner") args.add_argument("-o", type=str, dest="output", help="output file to save result") args.add_argument("-p", type=str, dest="pr", help="pull request number") @@ -168,5 +169,5 @@ if "__main__" == __name__: gp.create_tags_of_pr(args.pr, "ci_processing") ac = AC(os.path.join(os.path.dirname(os.path.realpath(__file__)), "ac.yaml")) - ac.check_all(workspace=args.workspace, repo=args.repo) + ac.check_all(workspace=args.workspace, repo=args.repo, tbranch=args.tbranch) ac.save(args.output) -- Gitee