【技术实现步骤摘要】
一种智能化持续集成与持续部署流水线方法及系统
本专利技术涉及持续集成与持续部署的
,尤其涉及一种智能化持续集成与持续部署流水线方法及系统。
技术介绍
持续集成是软件开发中的一项重要实践。GradyBooch于1994年最先提出持续集成的理念,随后,KentBeck与RonJeffrie在他们提出的极限编程方法(ExtremeProgramming)中推广了持续集成。持续集成的基本的思想是软件开发团队中所有开发者的工作要持续地集成到一条共享的开发主线上,集成过程包括了代码的合并、编译、构建、测试等任务,该方法的持续性表现为每天进行若干次这样的集成过程。持续集成通过不断地合并和检查各个开发者的代码变更来及早发现他们之间的冲突和质量问题。对于互联网应用等需要部署的软件系统,持续集成从开发阶段延伸到部署阶段便产生了持续部署。持续部署可以加快软件产品的更新迭代速度,及时将软件的变更推送给用户,有效提升用户体验。Jenkins、TrvaisCI等持续集成工具(服务)通过流水线技术实现了持续集成的过程的高度自动化。持续集成与持续部署流水线包括了持续集成与持续部署任务及其配置、任务间的依赖关系以及任务的自动执行机构。用户编写流水线配置文件,持续集成工具(服务)根据配置文件执行流水线中的任务。持续集成与持续部署的频率、时机以及任务的选择对其效率具有很大的影响,过高的频率和不必要的任务会造成计算资源的过度开销、集成与部署周期的延长,并给开发者带来过多的干扰,过低的频率以及不完备的任务则无法达到提高开发效率与软件质量的目标。现有工具虽然能够自动化持续集成和持续部署的过程, ...
【技术保护点】
1.一种智能化持续集成与持续部署流水线方法,其特征在于,包括以下步骤:(1)收集开放协作平台上可被访问的项目的持续集成与持续部署配置文件及使用的开发语言、开发框架信息,构建持续集成与持续部署流水线任务库及配置模板库;(2)针对步骤(1)构建持续集成与持续部署流水线任务库中的每一项任务,建立一套可选、可配置的任务执行规则;(3)获取服务的用户项目使用的开发语言、开发框架,根据其使用的开发语言、开发框架从步骤(1)构建的持续集成与持续部署流水线任务库及配置模板库中,推荐流水线配置模板与流水线任务形成用户项目的持续集成与持续部署流水线;(4)记录步骤(3)中所述用户项目的版本控制仓库地址,在本地建立上述版本控制仓库的副本,持续监控原版本控制仓库与本地副本仓库间的差异,发现开发者提交的代码变更;(5)对步骤(3)形成的持续集成与持续部署流水线中任务的执行进行综合监控、度量分析和记录,形成历史信息库,监控、度量分析和记录内容包括代码变更信息及其上下文,代码变更对应的持续集成与持续部署任务执行信息;(6)对步骤(3)形成的持续集成与持续部署流水线中任务的输入和输出文件进行追踪,建立任务与文件间的输 ...
【技术特征摘要】
1.一种智能化持续集成与持续部署流水线方法,其特征在于,包括以下步骤:(1)收集开放协作平台上可被访问的项目的持续集成与持续部署配置文件及使用的开发语言、开发框架信息,构建持续集成与持续部署流水线任务库及配置模板库;(2)针对步骤(1)构建持续集成与持续部署流水线任务库中的每一项任务,建立一套可选、可配置的任务执行规则;(3)获取服务的用户项目使用的开发语言、开发框架,根据其使用的开发语言、开发框架从步骤(1)构建的持续集成与持续部署流水线任务库及配置模板库中,推荐流水线配置模板与流水线任务形成用户项目的持续集成与持续部署流水线;(4)记录步骤(3)中所述用户项目的版本控制仓库地址,在本地建立上述版本控制仓库的副本,持续监控原版本控制仓库与本地副本仓库间的差异,发现开发者提交的代码变更;(5)对步骤(3)形成的持续集成与持续部署流水线中任务的执行进行综合监控、度量分析和记录,形成历史信息库,监控、度量分析和记录内容包括代码变更信息及其上下文,代码变更对应的持续集成与持续部署任务执行信息;(6)对步骤(3)形成的持续集成与持续部署流水线中任务的输入和输出文件进行追踪,建立任务与文件间的输入输出关联并缓存任务输出的文件,根据任务与文件间的输入输出关联进一步建立任务间的依赖关系;(7)在步骤(2)发现开发者提交的代码变更时,根据以下四个决策面依次判断步骤(3)形成的持续集成与持续部署流水线中的任务是否需要执行、是否并行执行并决定需要执行的任务的参数和配置,所述四个决策面为:a.用户选择和配置的步骤(2)构建的任务执行规则,b.基于步骤(5)形成的历史信息库的机器学习决策模型的预判结果,c.步骤(6)建立的任务间的依赖关系,d.步骤(6)追踪的任务输入文件的变更。2.根据权利要求1所述的智能化持续集成与持续部署流水线方法,其特征在于:所述步骤(1)中,根据使用的开发语言、开发框架对开放协作平台上可被访问的项目分类,从分类后的每一类项目的配置文件中提取常见的任务及其信息、任务间的依赖关系;所述任务信息包括任务的名称、任务的参数和配置,所述任务的参数和配置包括任务依赖的工具、工具的参数和配置,利用所述任务及其信息、任务间依赖关系构建持续集成与持续部署流水线任务库及模板库。3.根据权利要求1所述的智能化持续集成与持续部署流水线方法,其特征在于:所述步骤(2)中,一套可选、可配置的任务执行规则包括:(31)周期性执行规则:预设任务执行周期、任务参数和配置,如果周期内代码发生变更,在周期结束时,不考虑其他因素,以预设的任务参数和配置执行任务;(32)最大时间间隔执行规则:预设任务执行的最大时间间隔、任务参数和配置,在最大时间间隔内,如果代码发生了变更且任务没有被执行过,不考虑其他因素,以预设的任务参数和配置执行任务;(33)累积变更规模执行规则:预设累积变更规模、任务参数和配置,上次任务执行后,源版本控制库与本地版本控制库副本变更累积到预设规模后,不考虑其他因素,以预设的任务参数和配置执行任务,所述累积变更规模以行数计算,区别不同类型的变更;(34)流水线配置变更执行规则:预设任务参数和配置,流水线配置被用户修改后,不考...
【专利技术属性】
技术研发人员:朱家鑫,陈伟,高楚舒,魏峻,杨丰,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。