diff --git a/src/ac/acl/spec/check_spec.py b/src/ac/acl/spec/check_spec.py index 79ec285f2347a6ce0369f42415fa4a740a288387..468b616eb8a30da5be37207de1985279974421ff 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 c5084197534573236f1f6813867d3f75bbeb33a7..f2febf6cf2ff499af96e27bbf91be9e2921c32b9 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)