[发明专利]持续集成流水线的优化方法及系统在审
申请号: | 202010924298.0 | 申请日: | 2020-09-04 |
公开(公告)号: | CN114153427A | 公开(公告)日: | 2022-03-08 |
发明(设计)人: | 刘锋 | 申请(专利权)人: | 株式会社日立制作所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/70;G06Q10/04;G06Q10/06 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 黄灿;姜精斌 |
地址: | 日本*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 持续 集成 流水线 优化 方法 系统 | ||
本发明提供了一种持续集成流水线的优化方法及系统。本发明实施例还可以利用任务重要度评级算法区分流水线中的一般任务和重要任务,智能的监控和调配了流水线的任务执行顺序,在流水线再次启动时可以略过不必要的任务,直接从重要任务执行,在保证应用成功交付的同时也大大降低了持续集成流水线执行的时间成本,节约了系统资源,提高了流水线的执行效率。
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种持续集成流水线的优化方法及系统。
背景技术
现代应用开发的目标是让多位开发人员同时处理同一应用的不同功能。但是,如果企业安排在一天内将所有分支源代码合并在一起(称为“合并日”),最终可能造成工作繁琐、耗时,而且需要手动完成。这是因为当一位独立工作的开发人员对应用进行更改时,有可能会与其他开发人员同时进行的更改发生冲突。如果每个开发人员都自定义自己的本地集成开发环境(IDE,Integrated Development Environment),而不是让团队就一个基于云的IDE达成一致,那么就会让问题雪上加霜。
持续集成(CI,Continuous integration)是一种通过在应用开发阶段引入自动化来实现频繁向客户交付应用的方法。CI可以帮助开发人员更加频繁地将代码更改合并到共享分支或“主干”中。一旦开发人员对应用所做的更改被合并,系统就会通过自动构建应用并运行不同级别的自动化测试来验证这些更改,确保这些更改没有对应用造成破坏。这意味着测试内容涵盖了构成整个应用的不同模块。如果自动化测试发现新代码和现有代码之间存在冲突,CI可以更加轻松地快速修复这些错误。近来CI技术也被广泛应用到机器学习领域。
现有技术中的一种用于使用代码审查质量来优化CI请求队列的方案,基于可靠性因子来确定拉取CI队列每个请求的可靠性值进行分类:高优先级集成队列和低优先级集成队列,分类器将可信分类中的拉取请求发送到高优先级集成队列,将不可信分类中的拉取请求发送到低优先级集成队列保证多个集成请求时的产品交付质量。
上述方案并没有涉及到CI的内部,只是简单的根据代码质量设定优先级来决定CI流水线的执行顺序,但没有考虑源码和配置文件的修改对整个流水线内各个任务的影响,也没有考虑根据不同文件的修改对流水线任务更精细化的监控和调配,因此CI流水线的执行效率仍旧较低。
发明内容
本发明实施例要解决的技术问题是提供一种持续集成流水线的优化方法及系统,提高了持续集成流水线的执行效率,节约系统资源。
为解决上述技术问题,根据本发明的一个方面,提供了一种持续集成流水线的优化方法,包括:
根据目标应用的流水线配置文件,依次执行所述流水线的每个任务;
在当前任务执行失败时,保存当前任务对应的流水线状态,所述流水线状态包括当前任务之前的所有任务的状态;
在所述流水线修改完成后,根据每个任务的重要度指标及对应权重,计算每个任务的重要度评分;
根据所述重要度评分,确定所述流水线中需要继续执行的剩余任务,并更新所述流水线配置文件;
根据更新后的流水线配置文件和已保存的流水线状态,执行所述流水线中的剩余任务。
可选的,在依次执行所述流水线中的每个剩余任务的过程中,若任一任务执行失败,则返回所述在当前任务执行失败时,保存当前任务对应的流水线状态的步骤。
可选的,所述的优化方法还包括:
在所述流水线中的所有任务都成功执行后,发布或部署所述目标应用。
可选的,所述任务的重要度指标包括以下所有指标:
所述任务相关的源码文件中被修改的文件数量;
所述任务相关的外部参数中被修改的参数数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于株式会社日立制作所,未经株式会社日立制作所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010924298.0/2.html,转载请声明来源钻瓜专利网。