软件开发中的持续集成交付方法、系统、设备和介质技术方案

技术编号:37374955 阅读:17 留言:0更新日期:2023-04-27 07:18
本申请实施例涉及计算机技术领域,公开了一种软件开发中的持续集成交付方法、系统、设备和介质,该方法包括:根据预设的第一验证规则对通过审查工具获取到的修改代码进行第一验证;对通过第一验证的修改代码进行第二验证;将通过第二验证的修改代码合入到当前代码中,并对合入后的代码进行预编译;在预编译成功的情况下,将合入后的代码存入代码库;根据获取到的项目需求信息和输入参数,从代码库中获取目标版本的代码,对目标版本的代码进行编译,并在编译成功的情况下,发布目标版本的代码。本申请实施例提供的软件开发中的持续集成交付方法,可以合理缩短代码编译过程、持续集成交付过程的时间,有效提升软件开发效率,提升用户使用体验。升用户使用体验。升用户使用体验。

【技术实现步骤摘要】
软件开发中的持续集成交付方法、系统、设备和介质


[0001]本申请实施例涉及计算机
,特别涉及一种软件开发中的持续集成交付方法、系统、设备和介质。

技术介绍

[0002]持续集成交付(Continuous integration/Continuous delivery,简称:CI/CD)是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,作为一个面向开发和运营团队的解决方案,CI/CD主要针对解决在集成新代码时所引发的问题。团队开发成员会经常提交修改,通常每个成员每天都会至少提交一次修改,这也就意味着每天可能会发生多次集成。每次集成都需要通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。这个过程可以大大减少集成的问题,即代码集成到主干分支之前,必须通过代码审核、自动化测试,只要有一个测试用例失败,就不能集成。因此使用CI/CD可以让产品快速迭代,同时还能保持高质量。
[0003]然而,持续集成交付中,代码编译是不可缺少的一步,但代码编译流程用时较长,涉及软件配置管理系统(Software configuration management,简称:SCM)的多个手动操作,这导致软件开发节奏变缓,没有办法满足软件开发的高效率迭代的需求。同时,无论代码或者持续集成中的哪个环节出现问题,均需要等到编译过程结束才进行失败提示,这进一步拉长了软件开发的时间。

技术实现思路

[0004]本申请实施例的目的在于提供一种软件开发中的持续集成交付方法、系统、设备和介质,可以合理缩短代码编译过程、持续集成交付过程的时间,提升软件开发效率,提升用户使用体验。
[0005]为解决上述技术问题,本申请的实施例提供了一种软件开发中的持续集成交付方法,包括以下步骤:根据预设的第一验证规则对通过审查工具获取到的修改代码进行第一验证;对通过所述第一验证的修改代码进行第二验证,所述第二验证包括bug比对验证;将通过所述第二验证的修改代码合入到当前代码中,并对合入后的代码进行预编译;在所述预编译成功的情况下,将所述合入后的代码存入代码库;根据获取到的项目需求信息和输入参数,从所述代码库中获取目标版本的代码,对所述目标版本的代码进行编译,并在所述编译成功的情况下,发布所述目标版本的代码。
[0006]本申请的实施例还提供了一种持续集成交付系统,包括:审查工具、bug比对工具、SCM系统、编译工具和代码库;所述审查工具用于获取修改代码,根据预设的第一验证规则对所述修改代码进行第一验证,并将通过所述第一验证的修改代码发送至所述bug比对工具;所述bug比对工具用于对所述通过所述第一验证的修改代码进行第二验证,并将通过所述第二验证的修改代码发送至所述SCM系统,所述第二验证包括bug比对验证;所述SCM系统用于将通过所述第二验证的修改代码合入到所述代码库存储的当前代码中,并将合入后的
代码发送至所述编译工具;所述编译工具用于对所述合入后的代码进行预编译;所述SCM系统还用于在所述预编译成功的情况下,将所述合入后的代码存入代码库,获取项目需求信息和输入参数,根据所述项目需求信息和所述输入参数,从所述代码库中获取目标版本的代码,并将所述目标版本的代码发送给所述编译工具;所述编译工具还用于对所述目标版本的代码进行编译;所述SCM系统还用于在所述编译成功的情况下,发布所述目标版本的代码。
[0007]本申请的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的软件开发中的持续集成交付方法。
[0008]本申请的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的软件开发中的持续集成交付方法。
[0009]本申请的实施例提供的软件开发中的持续集成交付方法、系统、设备和介质,在持续集成过程中,通过审查工具获取修改代码,根据预设的第一验证规则对通过审查工具获取到的修改代码进行第一验证,若所述修改代码通过第一验证,则对通过第一验证的修改代码进行包括bug比对验证的第二验证,随后将通过第二验证的修改代码合入到当前代码中,并对合入后的代码进行预编译,在合入后的代码预编译成功的情况下,将合入后的代码存入代码库,在持续交付过程中,根据获取到的项目需求信息和输入参数,从代码库中获取目标版本的代码,对目标版本的代码进行编译,并在目标版本的代码编译成功的情况下,发布目标版本的代码。考虑到业内通用的持续集成交付系统中,代码编译流程用时较长,任何问题均需要等到编译过程结束才进行失败提示,这导致软件开发节奏变缓、软件开发的时间较长,而本申请的实施例,通过审查工具获取修改代码,在编译前进行两次验证,保证修改代码基本正确,同时将交付过程的编译过程拆分,预编译决定是否将修改代码入库,版本编译则负责集成交付,可以合理缩短代码编译过程、持续集成交付过程的时间,提升软件开发效率,提升用户使用体验。
[0010]另外,所述在所述编译成功的情况下,发布所述目标版本的代码,包括:在所述编译成功的情况下,打包所述目标版本的代码发送至代码服务器得到所述目标版本的软件,并向销售过程管理系统发送编译成功信息;通过所述销售过程管理系统对所述目标版本的软件进行预设的第三验证;其中,所述第三验证包括软件功能验证;若所述目标版本的软件通过所述第三验证,则将所述目标版本的软件归档,并将所述目标版本的软件发布给用户。目标版本的代码的发布就是目标版本的软件的发布,在发布目标版本的软件时还要进行软件层面的第三验证,保证发布的软件可以正常使用,进一步提升用户的使用体验。
[0011]另外,在所述通过所述销售过程管理系统对所述目标版本的软件进行预设的第三验证之后,还包括:若所述目标版本的软件没有通过所述第三验证,则输出所述目标版本的软件对应的bug信息,舍弃所述目标版本的软件,并进入下一个持续集成交付流程。目标版本的软件未通过第三验证,说明目标版本的软件在功能上有bug缺陷,无法使用、发布,此时输出目标版本的软件对应的bug信息供开发人员修改。
[0012]另外,所述方法还包括:若所述修改代码满足退回条件,则退回所述修改代码并进入下一个持续集成交付流程,所述退回条件包括:所述修改代码未通过所述第一验证、通过
所述第一验证的修改代码未通过所述第二验证、以及所述预编译失败。在修改代码未通过第一验证,或者通过第一验证的修改代码未通过第二验证,或者预编译失败的情况下,说明修改代码无法使用,此时及时退回无法使用修改代码,可以进一步加快开发节奏,更好地满足软件开发的高效率迭代的需求。
[0013]另外,所述项目需求信息包括版本号信息和编译脚本信息;所述从所述代码库中获取目标版本的代码,包括:根据所述版本号信息,从所述代码库中获取目标版本的代码;所述对所述目标版本的代码进行编译,包括:使用所述编译脚本信息对应的编译脚本,对所述目标版本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件开发中的持续集成交付方法,其特征在于,包括:根据预设的第一验证规则对通过审查工具获取到的修改代码进行第一验证;对通过所述第一验证的修改代码进行第二验证,所述第二验证包括bug状态验证;将通过所述第二验证的修改代码合入到当前代码中,并对合入后的代码进行预编译;在所述预编译成功的情况下,将所述合入后的代码存入代码库;根据获取到的项目需求信息和输入参数,从所述代码库中获取目标版本的代码,对所述目标版本的代码进行编译,并在所述编译成功的情况下,发布所述目标版本的代码。2.根据权利要求1所述的软件开发中的持续集成交付方法,其特征在于,所述在所述编译成功的情况下,发布所述目标版本的代码,包括:在所述编译成功的情况下,打包所述目标版本的代码发送至代码服务器得到所述目标版本的软件,并向销售过程管理系统发送编译成功信息;通过所述销售过程管理系统对所述目标版本的软件进行预设的第三验证;其中,所述第三验证包括软件功能验证;若所述目标版本的软件通过所述第三验证,则将所述目标版本的软件归档,并将所述目标版本的软件发布给用户。3.根据权利要求2所述的软件开发中的持续集成交付方法,其特征在于,在所述通过所述销售过程管理系统对所述目标版本的软件进行预设的第三验证之后,还包括:若所述目标版本的软件没有通过所述第三验证,则输出所述目标版本的软件对应的bug信息,舍弃所述目标版本的软件,并进入下一个持续集成交付流程。4.根据权利要求2所述的软件开发中的持续集成交付方法,其特征在于,所述方法还包括:若所述修改代码满足退回条件,则退回所述修改代码并进入下一个持续集成交付流程,所述退回条件包括:所述修改代码未通过所述第一验证、通过所述第一验证的修改代码未通过所述第二验证、以及所述预编译失败。5.根据权利要求1至4中任一项所述的软件开发中的持续集成交付方法,其特征在于,所述项目需求信息包括版本号信息和编译脚本信息;所述从所述代码库中获取目标版本的代码,包括:根据所述版本号信息,从所述代码库中获取目标版本的代码;所述对所述目标版本的代码进行编译,包括:使用所述编译脚本信息对应的编译脚本,对所述目标版本的代码进行编译。6.根据权利要求1至4中任一项所述的软件开发中的持续集成交付方法,其特征在于,所述审查工具为ger...

【专利技术属性】
技术研发人员:张平杨涛
申请(专利权)人:芯讯通无线科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1