[发明专利]基于流水线的代码执行方法、装置、电子设备及介质在审
| 申请号: | 202111351253.X | 申请日: | 2021-11-15 |
| 公开(公告)号: | CN114048135A | 公开(公告)日: | 2022-02-15 |
| 发明(设计)人: | 黄群;程相;叶鸿浩;张冰宇 | 申请(专利权)人: | 中国工商银行股份有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/455;G06F9/48 |
| 代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 王文思 |
| 地址: | 100140 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 流水线 代码 执行 方法 装置 电子设备 介质 | ||
1.一种基于流水线的代码执行方法,包括:
将至少一段源代码预先提交至Gerrit服务器的代码仓库,构建流水线配置信息;
根据所述流水线配置信息,调用Jenkins服务器生成包含多项任务的流水线任务计划;
响应于监控到所述代码仓库的变更信息,根据预设执行规则,触发执行所述流水线任务计划。
2.根据权利要求1所述的方法,其中,所述将至少一段源代码提交至Gerrit服务器的代码仓库,包括:
创建前端页面,用于将至少一段源代码提交至所述代码仓库;
在所述代码仓库中创建相互共享的多个组件仓库,以将具有同一项目特性的多段源代码提交至对应的多个组件仓库。
3.根据权利要求1所述的方法,其中,所述流水线任务计划中的多项任务包括:
源代码拉取,单元测试执行,Sonar静态代码扫描和自定义组件扫描。
4.根据权利要求3所述的方法,其中,所述单元测试执行包括Maven和Ant类型项目单元测试执行。
5.根据权利要求3所述的方法,其中,所述自定义组件扫描包括数据库脚本扫描检测和jar包冲突扫描检测。
6.根据权利要求1所述的方法,其中,所述响应于监控到所述代码仓库的变更信息,包括:
使用所述Jenkins服务器扫描到所述代码仓库的变更信息,所述代码仓库的变更信息表征所述代码仓库接收到后续提交的至少一段源代码。
7.根据权利要求1所述的方法,其中,所述预设执行规则包括:
将所述Jenkins服务器连接至docker容器,在所述docker容器按照顺序依次执行所述流水线任务计划中的各项任务;
若多段源代码同时提交至所述代码仓库,使所述代码仓库出现变更信息,则利用所述docker容器并行执行所述流水线任务计划中对应的多项任务。
8.根据权利要求1所述的方法,其中,所述方法还包括:
将所述变更信息和所述流水线任务计划的各项任务执行结果存储至数据库服务器。
9.根据权利要求8所述的方法,其中,所述各项任务执行结果包括:
提交人信息、提交时间、变更文件清单、变更行明细、单元测试执行成功率、增量程序行覆盖率、变更行覆盖率、增量Sonar问题、平均方法圈复杂度、认知复杂度和代码审核人信息中的至少一种。
10.根据权利要求8所述的方法,其中,所述方法还包括:
根据所述各项任务执行结果,判断所述至少一段源代码中的每段源代码是否满足预设代码质量指标阈值,如果否,则将该段源代码从所述代码仓库退回。
11.根据权利要求10所述的方法,其中,所述预设代码质量指标阈值从以下指标之中的至少一种来设置:
单元测试成功率,增量程序行覆盖率,变更行覆盖率,增量Sonar问题,平均方法圈复杂度和认知复杂度;
其中,所述增量Sonar问题指标根据严重程序,依次划分为阻断、严重、主要、次要和轻微等级。
12.根据权利要求10所述的方法,其中,所述判断所述至少一段源代码中的每段源代码是否满足预设代码质量指标阈值之前,还包括:
预先设置例外清单,控制所述例外清单中的源代码默认通过所述预设代码质量指标阈值;
其中,所述例外清单分别从单元测试维度、Sonar问题维度和技术债维度来设置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111351253.X/1.html,转载请声明来源钻瓜专利网。





