软件增量构建方法、系统、计算机设备和可读存储介质与流程

摘要: 本发明涉及分布式系统,尤其涉及一种软件增量构建方法、系统、计算机设备和可读存储介质。背景技术:1、大型软件研发通常依赖持续集成系统完成代码拉取、任务分发、编译、...
软件增量构建方法、系统、计算机设备和可读存储介质与流程

本发明涉及分布式系统,尤其涉及一种软件增量构建方法、系统、计算机设备和可读存储介质。

背景技术:

1、大型软件研发通常依赖持续集成系统完成代码拉取、任务分发、编译、制品归档和软件包发布。现有系统在代码小幅修改时,仍经常触发全量编译,导致开发等待时间长、执行机资源占用高、重复生成大量未变化的中间件。

2、业界已有构建缓存、远程缓存、依赖缓存和制品归档等方案,可以在一定程度上复用构建输出。但这些方案多聚焦于构建工具或缓存系统本身,通常没有在持续集成编排层明确描述。

3、因此,在大型遗留工程、多语言工程或未整体迁移到专用构建系统的场景下,仍存在人工选择增量任务容易漏选、历史中间件缺乏可复用性证明等问题。

技术实现思路

1、有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种软件增量构建方法、系统、计算机设备和可读存储介质。

2、本发明提供如下技术方案:

3、第一方面,本发明提供一种软件增量构建方法,方法包括:

4、获取代码提交变更信息,根据代码提交变更信息得到影响域;并基于影响域生成增量构建计划,增量构建计划包括可复用依赖任务集合、重编译任务集合;

5、对增量构建计划进行任务分发,得到任务调度指令;

6、根据可复用依赖任务集合获取历史中间件,并获取历史中间件对应的可信元数据;根据任务调度指令和可信元数据进行指纹校验,得到复用判定结果;

7、根据复用判定结果、重编译任务集合对源码进行编译,得到新中间件集合;

8、根据新中间件集合生成目标软件包。

9、在可选的实施方式中,影响域包括受影响组件和初始受影响任务,根据代码提交变更信息得到影响域,包括:

10、获取源码目录、模块配置、构建脚本、ci任务配置、pom归档路径和历史构建日志;

11、根据源码目录、模块配置、构建脚本、ci任务配置、pom归档路径和历史构建日志进行多级映射,得到预设文件集合到预设组件集合的映射关系、预设组件集合到预设编译任务集合的映射关系,以及任务依赖图;

12、根据预设文件集合到预设组件集合的映射关系、预设组件集合到预设编译任务集合的映射关系和代码提交变更信息得到受影响组件和初始受影响任务。

13、在可选的实施方式中,根据预设文件集合到预设组件集合的映射关系、预设组件集合到预设编译任务集合的映射关系和代码提交变更信息得到影响域,包括:

14、根据代码提交变更信息和预设文件集合到预设组件集合的映射关系确定受影响组件。

15、在可选的实施方式中,基于影响域生成增量构建计划,包括:

16、根据初始受影响任务、代码提交变更信息和任务依赖图确定重编译任务集合;

17、根据重编译任务集合和任务依赖图确定可复用依赖任务集合;

18、根据重编译任务集合、任务依赖图和预设任务集合确定待验证观察任务集合。

19、在可选的实施方式中,根据任务调度指令和可信元数据进行指纹校验,得到复用判定结果,包括:

20、基于任务调度指令确定当前构建上下文;

21、根据当前构建上下文生成期望指纹,根据可信元数据获取历史指纹;

22、将期望指纹与历史指纹进行对比,得到复用判定结果。

23、在可选的实施方式中,将期望指纹与历史指纹进行对比,得到复用判定结果,包括:

24、将期望指纹与历史指纹进行预设字段对比,得到字段对比结果;

25、若字段对比结果为字段一致,则根据当前构建上下文获取质量状态标签;

26、若质量状态标签为有效,则对当前构建上下文中的生命周期信息进行校验,得到校验结果;

27、若校验结果为校验通过,则复用判定结果为复用历史中间件。

28、在可选的实施方式中,增量构建计划还包括待验证观察任务集合,基于所述影响域生成增量构建计划,还包括:

29、根据重编译任务集合、任务依赖图和预设任务集合确定待验证观察任务集合;

30、根据新中间件集合生成目标软件包之后,包括:

31、根据增量构建计划、复用判定结果和新中间件集合构建谱系账本;

32、根据谱系账本、目标软件包、增量构建计划和复用判定结果进行多维度验证,得到验证结果;

33、若验证结果为多维度验证成功,则目标软件包构建成功;

34、若验证结果为多维度验证失败,则基于验证结果和待验证观察任务集合生成新的增量构建计划,并基于新的增量构建计划重新执行对增量构建计划进行任务分发,得到任务调度指令的步骤,直至多维度验证成功。

35、第二方面,本发明提供一种软件增量构建系统,系统包括:

36、生成模块,获取代码提交变更信息,根据代码提交变更信息得到影响域;并基于影响域生成增量构建计划,增量构建计划包括可复用依赖任务集合、重编译任务集合;

37、分发模块,用于对增量构建计划进行任务分发,得到任务调度指令;

38、校验模块,用于根据可复用依赖任务集合获取历史中间件,并获取历史中间件对应的可信元数据;根据任务调度指令和可信元数据进行指纹校验,得到复用判定结果;

39、编译模块,用于根据复用判定结果、重编译任务集合对源码进行编译,得到新中间件集合;

40、构建模块,用于根据新中间件集合生成目标软件包。

41、第三方面,本发明提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现如前述实施方式任一项的软件增量构建方法。

42、第四方面,本发明提供一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现如前述实施方式任一项的软件增量构建方法。

43、本公开的软件增量构建方法、系统、计算机设备和可读存储介质,获取代码提交变更信息,根据代码提交变更信息得到影响域;并基于影响域生成增量构建计划,增量构建计划包括可复用依赖任务集合、重编译任务集合;对增量构建计划进行任务分发,得到任务调度指令;根据可复用依赖任务集合获取历史中间件,并获取历史中间件对应的可信元数据;根据任务调度指令和可信元数据进行指纹校验,得到复用判定结果;根据复用判定结果、重编译任务集合对源码进行编译,得到新中间件集合;根据新中间件集合生成目标软件包。这样,通过精准识别代码变更的影响域,生成高效的增量构建计划,实现依赖任务的复用与重编译任务的优化。利用可信元数据和指纹校验确保中间件的可靠复用,显著缩短构建时间、减少资源消耗,提升构建效率和软件包的质量,同时增强构建过程的可追溯性和安全性。

1.一种软件增量构建方法,其特征在于,所述方法包括:

2.根据权利要求1所述的软件增量构建方法,其特征在于,所述影响域包括受影响组件和初始受影响任务,所述根据所述代码提交变更信息得到影响域,包括:

3.根据权利要求2所述的软件增量构建方法,其特征在于,所述根据所述预设文件集合到预设组件集合的映射关系、所述预设组件集合到预设编译任务集合的映射关系和所述代码提交变更信息得到所述受影响组件和所述初始受影响任务,包括:

4.根据权利要求2所述的软件增量构建方法,其特征在于,所述基于所述影响域生成增量构建计划,包括:

5.根据权利要求1所述的软件增量构建方法,其特征在于,所述根据所述任务调度指令和所述可信元数据进行指纹校验,得到复用判定结果,包括:

6.根据权利要求5所述的软件增量构建方法,其特征在于,所述将所述期望指纹与所述历史指纹进行对比,得到所述复用判定结果,包括:

7.根据权利要求4所述的软件增量构建方法,其特征在于,所述增量构建计划还包括待验证观察任务集合,所述基于所述影响域生成增量构建计划,还包括:

8.一种软件增量构建系统,其特征在于,所述系统包括:

9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任一项所述的软件增量构建方法。

10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的软件增量构建方法。