CN110377334A - 持续集成方法及设备 - Google Patents
持续集成方法及设备 Download PDFInfo
- Publication number
- CN110377334A CN110377334A CN201910678265.XA CN201910678265A CN110377334A CN 110377334 A CN110377334 A CN 110377334A CN 201910678265 A CN201910678265 A CN 201910678265A CN 110377334 A CN110377334 A CN 110377334A
- Authority
- CN
- China
- Prior art keywords
- code
- information
- code release
- project build
- release
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000003860 storage Methods 0.000 claims abstract description 135
- 230000014759 maintenance of location Effects 0.000 claims abstract description 42
- 238000012360 testing method Methods 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 19
- 241000414967 Colophon Species 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003752 improving hair Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本申请涉及一种持续集成方法及设备。方法包括:从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;根据所选择的代码版本信息进行项目构建;在项目构建完成后,对本次项目构建的版本进行测试。本申请用以解决现有的持续集成工具在多个代码仓库的基础上进行项目构建时,无法体现多个代码仓库之间的关系,不支持代码版本组合的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种持续集成方法及设备。
背景技术
实际项目开发过程中,可能会有多个代码仓库。例如,经典的网页(web)开发模式MVC(全称为:模型-视图-控制器)中,模型(Model)层和控制器(Controller)层可能由后端团队开发,视图(View)层由前端团队开发。考虑到前、后端技术分离,以及便于团队管理等原因,整个项目被拆分为两个代码仓库,分别由不同的团队负责开发。
在开发完成后,采用持续集成工具进行项目构建,可快速构建并测试团队成员提交的代码,大大缩减开发成本。但是,目前主流的持续集成工具是以一个代码仓库为基础进行构建,如果以多个代码仓库为基础进行构建,会存在以下问题:
1、持续集成工具只能在一个代码仓库的基础上进行项目构建,其它代码仓库属于所构建项目的依赖,例如,jenkins中的上、下游项目。实际上,一个项目虽然由多个团队参与开发,得到多个代码仓库,但是该多个代码仓库之间并不是依赖关系,而可能是并列关系,也可能是互相引用关系。那么,在持续集成的测试阶段所得的测试结果,属于整个项目多个代码仓库共同的结果,不属于任何一个版本的代码仓库,现有的持续集成工具无法实现这一点。
2、在多代码仓库的情况下,每次项目构建的版本是由多个代码仓库的版本组成。现有的持续集成工具,只能根据不同代码仓库最新提交的版本进行项目构建,不支持版本的组合。
发明内容
本申请提供了一种持续集成方法及设备,用以解决现有的持续集成工具在多个代码仓库的基础上进行项目构建时,无法体现多个代码仓库之间的关系,不支持代码版本组合的问题。
第一方面,本申请提供了一种持续集成方法,包括:从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;根据所选择的代码版本信息进行项目构建;在项目构建完成后,对本次项目构建的版本进行测试。
可选地,所述代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息,所述稳定指示信息用于指示代码版本是否稳定。
可选地,从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,包括:在检测到所述至少两个代码仓库中,任一代码仓库的代码版本更新时,按照预先配置的代码版本选择原则,从所述至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
可选地,所述代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。
可选地,从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,包括:在显示界面上显示所述至少两个代码仓库各自的代码版本记录表的内容;获取用户分别在所述显示界面的所述至少两个代码仓库的代码版本记录表中所选择的代码版本信息;将获取的所述代码版本信息,作为所述用于本次项目构建的代码版本信息。
可选地,根据所选择的代码版本信息进行项目构建,包括:分别按照每个所选择的代码版本信息,从所述至少两个代码仓库中获取相应版本的代码,并写入到目录中;采用预定义的项目构建脚本程序,运行所述目录中的代码进行项目构建。
可选地,对本次项目构建的版本进行测试之后,所述方法还包括:在项目构建版本记录表中记录本次的项目构建信息,所述项目构建信息中包括本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号;根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息。
可选地,根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息,包括:若确定所述测试结果为通过,将所述代码版本记录表中,所述用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
第二方面,本申请提供了一种持续集成装置,包括:选择模块,用于从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;构建模块,用于根据所选择的代码版本信息进行项目构建;测试模块,用于在项目构建完成后,对本次项目构建的版本进行测试。
可选地,所述代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息,所述稳定指示信息用于指示代码版本是否稳定。
可选地,所述选择模块具体用于:在检测到所述至少两个代码仓库中,任一代码仓库的代码版本更新时,按照预先配置的代码版本选择原则,从所述至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
可选地,所述代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。
可选地,所述选择模块具体用于:在显示界面上显示所述至少两个代码仓库各自的代码版本记录表的内容;获取用户分别在所述显示界面的所述至少两个代码仓库的代码版本记录表中所选择的代码版本信息;将获取的所述代码版本信息,作为所述用于本次项目构建的代码版本信息。
可选地,所述构建模块具体用于:分别按照每个所选择的代码版本信息,从所述至少两个代码仓库中获取相应版本的代码,并写入到目录中;采用预定义的项目构建脚本程序,运行所述目录中的代码进行项目构建。
可选地,所述装置还包括记录模块;所述记录模块,用于在所述测试模块对本次项目构建的版本进行测试之后,在项目构建版本记录表中记录本次的项目构建信息,所述项目构建信息中包括本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号;根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息。
可选地,所述记录模块具体用于:若确定所述测试结果为通过,将所述代码版本记录表中,所述用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
第三方面,本申请提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现所述持续集成方法。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述持续集成方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,分别为每个代码仓库设置对应的代码版本记录表,采用代码版本记录表记录该代码仓库历史上每次收集的代码版本信息。在进行项目集成时,从多个代码仓库各自的代码版本记录表中选择用于项目构建的代码版本信息,根据所选择的代码版本信息进行项目构建,从而使得能够基于多个代码仓库进行项目构建,且能够任意选择多个代码仓库的代码版本,实现多个代码仓库的代码版本的自由组合。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请实施例中持续集成的方法流程示意图;
图2为本申请实施例中持续集成的整个过程示意图;
图3为本申请实施例中持续集成装置的结构示意图;
图4为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
现有的持续集成工具在多个代码仓库的基础上进行项目构建时,无法体现多个代码仓库之间的关系,代码版本组合混乱,无法追溯代码仓库的版本。为了解决上述问题,本申请实施例提供了一种持续集成方法,能够在多个代码仓库的基础上进行项目集成,克服了现有的持续集成工具对多个代码仓库进行项目集成所长生的上述各种问题。
本申请实施例中,一个代码仓库设置有一个对应的代码版本记录表,该代码版本记录表用于对该代码仓库进行管理。代码版本记录表中记录代码仓库历史上每次收集到的代码版本信息。
其中,代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息等,该稳定指示信息用于指示代码版本是否稳定。需要说明的是,此处仅是列举,代码版本信息中还可能包括其它与代码版本相关的信息,此处并未全部列举,例如,代码版本信息中还可能包括代码仓库的地址等。
例如,采用数据库记录代码仓库的代码版本记录表,表结构包括:指令标识(Commit-id)、提交时间、代码所在的分支名、是否稳定标签等,其中,指令标签即为代码版本号,是否稳定标签即为稳定指示信息。
具体地,数据库需要实时更新代码版本记录表的信息,可以采用能够进行实时信息传输的应用程序编程接口实现,例如,通过代码仓库管理工具(例如github、gitlab等)的实时信息传输功能(例如网络钩子(webhook)功能)接收代码仓库的推送事件(pushevent),并将推送事件所携带的该代码仓库本次的代码版本信息记录到数据库中,并将该代码版本信息中的稳定指示信息默认设置为指示不稳定。
并且,本申请实施例中,为了能够实现多仓库的持续构建,需要在每次项目构建后,记录项目构建信息,该项目构建信息包括一次项目构建所用到的各代码仓库的代码版本号,以及本次项目构建的测试结果,项目构建信息中也可能会包括其它与项目构建相关的信息,此处不再一一列举。具体地,也可以采用数据库的形式记录项目构建信息,例如,在数据库中保存项目构建版本记录表,该项目构建版本记录表中的一条记录即为一个项目构建信息,该条记录的标识可以作为项目构建的版本号,当然,项目构建的版本号也可以是其它信息,例如项目构建的时间等。
本申请实施例提供了一种持续集成方法,该方法能够以计算机程序的形式运行于任意一个电子设备中。具体地,如图1所示,进行持续集成的具体过程如下:
步骤101,从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
其中,一个代码仓库选出一个代码版本信息。需要说明的是,通常,项目构建需要用到各个团队所开发的代码,也就需要用到同属于一个项目的每个代码仓库,该情况下,步骤101中的“至少两个代码仓库”是指同属于一个项目的所有的代码仓库。当然,如果进行项目的局部构建,也可能只需要用到同属于一个项目的部分代码仓库,该情况下,“至少两个代码仓库”可以是项目的局部构建所需的多个代码仓库,而不必是全部代码仓库。
本申请实施例中,项目构建过程的触发方式可以有多种,以下列举两种进行说明。
第一种,自动触发,触发条件为:在检测到项目构建所用到的多个代码仓库中,任一代码仓库的代码版本更新时,自动触发项目构建过程,即,按照预先配置的代码版本选择原则,从代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
例如,在某一个代码仓库的webhook的push event发生时,触发项目构建过程。
具体地,代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。代码版本选择原则可以灵活配置,具体可以根据项目构建的运行环境配置代码版本选择原则,例如,测试环境下,配置代码版本选择原则为默认使用各代码仓库的最新代码版本信息;线上环境下,配置代码版本选择原则为默认使用各代码仓库的最新且稳定的代码版本信息。
第二种,手动触发,触发条件为:检测到显示界面上的项目构建按键的触发操作。具体地,在显示界面上显示至少两个代码仓库各自的代码版本记录表的内容;获取用户分别在显示界面的该至少两个代码仓库的代码版本记录表中所选择的代码版本信息;在检测到显示界面上的项目构建按键的触发操作后,触发项目构建过程,即将获取的代码版本信息,作为该用于本次项目构建的代码版本信息。
手动触发时,用户可以根据需要为不同的代码仓库选择代码版本信息,但是,理论上代码版本选择原则可参照第一种触发方式,即根据项目构建所运行的环境选择代码版本信息,如果是测试环境,则配置代码版本选择原则为默认使用各代码仓库的最新代码版本信息;如果是线上环境,则配置代码版本选择原则为默认使用各代码仓库的最新且稳定的代码版本信息。
步骤102,根据所选择的代码版本信息进行项目构建。
具体地,分别按照每个所选择的代码版本信息,从至少两个代码仓库中获取相应版本的代码,并写入到目录中;采用预定义的项目构建脚本程序,运行该目录中的代码进行项目构建。
步骤103,在项目构建完成后,对本次项目构建的版本进行测试。
一个具体实施例中,对本次项目构建的版本进行测试之后,在项目构建版本记录表中增加一条记录,该记录用于记录本次的项目构建信息,包括记录本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号,并且,根据该测试结果,更新代码版本记录表中,用于本次项目构建的代码版本信息。
具体地,若确定测试结果为通过,将代码版本记录表中,用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
其中,可以是采用单元测试的方式对项目构建的版本进行测试,或者,采用人工测试的方式对项目构建的版本进行测试。
一个具体实施例中,如图2所示,持续集成的整个过程如下:代码仓库有更新时,通过webhook提交更新的代码版本信息到数据库,数据库在该代码仓库的代码版本记录表中记录最新的代码版本信息。同时,如果是自动触发方式,则代码仓库有更新时,触发自动化的项目构建过程,即按照预先配置的代码版本选择原则,从各代码仓库的代码版本记录表中选择代码版本信息,如果是线上环境,则选择最新且稳定的代码版本信息,如果是测试环境,则选择最新的代码版本信息。如果是手动触发方式,则检测用户通过界面选择各代码仓库的代码版本信息。
然后,根据选择的各代码仓库的代码版本信息,从代码仓库中读取代码并写入到目录中,按照用户自定义的项目构建脚本程序运行该目录,进行项目构建。
最后,在项目构建完成后,对本次的项目构建的版本进行测试,并在测试结果为通过时,记录本次项目构建的测试结果,以及对本次项目构建所采用的代码版本信息标记稳定版本。
本申请实施例中,分别为每个代码仓库设置对应的代码版本记录表,采用代码版本记录表记录该代码仓库历史上每次收集的代码版本信息。在进行项目集成时,从多个代码仓库各自的代码版本记录表中选择用于项目构建的代码版本信息,根据所选择的代码版本信息进行项目构建,从而使得能够基于多个代码仓库进行项目构建,解决了现有的持续集成工具仅支持单仓库的项目构建的问题,支持跨团队的项目开发合作方式,使各团队可以管理自己的代码仓库,完成各自的代码开发,放弃库依赖的合作方式,加快合作效率。
并且,通过在项目构建版本记录表中记录每次的项目构建信息,在该项目构建信息中记录所使用的各代码仓库的代码版本号,使得能够任意选择多个代码仓库的代码版本,实现多个代码仓库的代码版本的自由组合,解决多代码仓库混合构建下的测试问题,能够追溯该项目构建所采用的代码版本,线上回测出现故障后,能够快速追溯问题代码版本,降低了测试组的成本。能够解决多代码仓库下的代码版本组合问题,应对多种情况,尤其是在线上紧急修改故障时,能够使用故障方在代码仓库中最新修复的代码版和其它代码仓库上线的代码版本,通过构建热修复版本,能够保证除了问题代码变更外,无其它任何变更,提高发版速度。
综上,本申请实施例,能够用于跨团队合作并需要混合构建的项目中,能够大大提高跨团队协作效率。尤其对于前端项目,如主站APP。前端开发和后端开发的最大不同在于功能繁多且需混合编译。通过本申请实施例所提供的持续集成方法,可以抛弃使用单仓库或引入库的方式,各个团队维护自己的代码仓库,在持续集成时混合,如果其它团队的代码出现故障,可快速选择该团队的历史版本进行构建。
基于同一构思,本申请实施例还提供了一种持续集成装置,该转置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图3所示,该装置主要包括:
选择模块301,用于从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;
构建模块302,用于根据所选择的代码版本信息进行项目构建;
测试模块303,用于在项目构建完成后,对本次项目构建的版本进行测试。
具体地,所述代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息,所述稳定指示信息用于指示代码版本是否稳定。
一个具体实施例中,所述选择模块301具体用于:在检测到所述至少两个代码仓库中,任一代码仓库的代码版本更新时,按照预先配置的代码版本选择原则,从所述至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
其中,所述代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。
一个具体实施例中,所述选择模块301具体用于:在显示界面上显示所述至少两个代码仓库各自的代码版本记录表的内容;获取用户分别在所述显示界面的所述至少两个代码仓库的代码版本记录表中所选择的代码版本信息;将获取的所述代码版本信息,作为所述用于本次项目构建的代码版本信息。
一个具体实施例中,所述构建模块302具体用于:分别按照每个所选择的代码版本信息,从所述至少两个代码仓库中获取相应版本的代码,并写入到目录中;采用预定义的项目构建脚本程序,运行所述目录中的代码进行项目构建。
一个具体实施例中,所述装置还包括记录模块,用于在所述测试模块对本次项目构建的版本进行测试之后,在项目构建版本记录表中记录本次的项目构建信息,所述项目构建信息中包括本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号;根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息。
具体地,所述记录模块若确定所述测试结果为通过,将所述代码版本记录表中,所述用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
基于同一构思,本申请实施例中还提供了一种电子设备,如图4所示,该电子设备主要包括:处理器401、通信接口402、存储器403和通信总线404,其中,处理器401、通信接口402和存储器403通过通信总线404完成相互间的通信。其中,存储器403中存储有可被至处理器401执行的程序,处理器401执行存储器403中存储的程序,实现如下步骤:从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;根据所选择的代码版本信息进行项目构建;在项目构建完成后,对本次项目构建的版本进行测试。
上述电子设备中提到的通信总线404可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口402用于上述电子设备与其他设备之间的通信。
存储器403可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器401的存储装置。
上述的处理器401可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述持续集成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (17)
1.一种持续集成方法,其特征在于,包括:
从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;
根据所选择的代码版本信息进行项目构建;
在项目构建完成后,对本次项目构建的版本进行测试。
2.根据权利要求1所述的持续集成方法,其特征在于,所述代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息,所述稳定指示信息用于指示代码版本是否稳定。
3.根据权利要求2所述的持续集成方法,其特征在于,从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,包括:
在检测到所述至少两个代码仓库中,任一代码仓库的代码版本更新时,按照预先配置的代码版本选择原则,从所述至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
4.根据权利要求3所述的持续集成方法,其特征在于,所述代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。
5.根据权利要求2所述的持续集成方法,其特征在于,从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,包括:
在显示界面上显示所述至少两个代码仓库各自的代码版本记录表的内容;
获取用户分别在所述显示界面的所述至少两个代码仓库的代码版本记录表中所选择的代码版本信息;
将获取的所述代码版本信息,作为所述用于本次项目构建的代码版本信息。
6.根据权利要求1至5任一项所述的持续集成方法,其特征在于,根据所选择的代码版本信息进行项目构建,包括:
分别按照每个所选择的代码版本信息,从所述至少两个代码仓库中获取相应版本的代码,并写入到目录中;
采用预定义的项目构建脚本程序,运行所述目录中的代码进行项目构建。
7.根据权利要求2至5任一项所述的持续集成方法,其特征在于,对本次项目构建的版本进行测试之后,所述方法还包括:
在项目构建版本记录表中记录本次的项目构建信息,所述项目构建信息中包括本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号;
根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息。
8.根据权利要求7所述的持续集成方法,其特征在于,根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息,包括:
若确定所述测试结果为通过,将所述代码版本记录表中,所述用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
9.一种持续集成装置,其特征在于,包括:
选择模块,用于从至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息,其中,一个代码仓库选出一个代码版本信息,所述代码版本记录表中记录所述代码仓库历史上每次收集到的代码版本信息;
构建模块,用于根据所选择的代码版本信息进行项目构建;
测试模块,用于在项目构建完成后,对本次项目构建的版本进行测试。
10.根据权利要求9所述的持续集成装置,其特征在于,所述代码版本信息包括代码版本号、提交时间、代码所在的分支名以及稳定指示信息,所述稳定指示信息用于指示代码版本是否稳定。
11.根据权利要求10所述的持续集成装置,其特征在于,所述选择模块具体用于:
在检测到所述至少两个代码仓库中,任一代码仓库的代码版本更新时,按照预先配置的代码版本选择原则,从所述至少两个代码仓库各自的代码版本记录表中,选择用于本次项目构建的代码版本信息。
12.根据权利要求11所述的持续集成装置,其特征在于,所述代码版本选择原则为:选择代码版本记录表中最新的代码版本信息,或者,选择代码版本记录表中最新且稳定的代码版本信息。
13.根据权利要求10所述的持续集成装置,其特征在于,所述选择模块具体用于:
在显示界面上显示所述至少两个代码仓库各自的代码版本记录表的内容;
获取用户分别在所述显示界面的所述至少两个代码仓库的代码版本记录表中所选择的代码版本信息;
将获取的所述代码版本信息,作为所述用于本次项目构建的代码版本信息。
14.根据权利要求9至13任一项所述的持续集成装置,其特征在于,所述构建模块具体用于:
分别按照每个所选择的代码版本信息,从所述至少两个代码仓库中获取相应版本的代码,并写入到目录中;
采用预定义的项目构建脚本程序,运行所述目录中的代码进行项目构建。
15.根据权利要求10至13任一项所述的持续集成装置,其特征在于,所述装置还包括记录模块;
所述记录模块,用于在所述测试模块对本次项目构建的版本进行测试之后,在项目构建版本记录表中记录本次的项目构建信息,所述项目构建信息中包括本次项目构建的版本的测试结果,以及本次项目构建所使用的各代码仓库的代码版本号;
根据所述测试结果,更新所述代码版本记录表中,所述用于本次项目构建的代码版本信息。
16.根据权利要求15所述的持续集成装置,其特征在于,所述记录模块具体用于:
若确定所述测试结果为通过,将所述代码版本记录表中,所述用于本次项目构建的代码版本信息中的稳定指示信息从指示不稳定,更新为指示稳定。
17.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至8任一项所述的持续集成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910678265.XA CN110377334A (zh) | 2019-07-25 | 2019-07-25 | 持续集成方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910678265.XA CN110377334A (zh) | 2019-07-25 | 2019-07-25 | 持续集成方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110377334A true CN110377334A (zh) | 2019-10-25 |
Family
ID=68256053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910678265.XA Pending CN110377334A (zh) | 2019-07-25 | 2019-07-25 | 持续集成方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377334A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309633A (zh) * | 2020-03-23 | 2020-06-19 | 上海新炬网络信息技术股份有限公司 | 基于自动化运维的持续性能测试方法 |
CN111562942A (zh) * | 2020-04-30 | 2020-08-21 | 中国银行股份有限公司 | 基于Gitlab的移动APP持续集成装置和方法 |
CN112256318A (zh) * | 2020-10-26 | 2021-01-22 | 上海云轴信息科技有限公司 | 一种用于依赖产品的构建方法及设备 |
CN112596760A (zh) * | 2020-12-09 | 2021-04-02 | 武汉联影医疗科技有限公司 | 软件维护方法、装置和设备 |
CN114780138A (zh) * | 2022-06-17 | 2022-07-22 | 中国空气动力研究与发展中心计算空气动力研究所 | 流场模拟软件代码版本管理方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010889A1 (en) * | 2014-01-27 | 2017-01-12 | Hewlett Packard Enterprise Development Lp | Continuous integration with reusable context aware jobs |
US20170169370A1 (en) * | 2015-12-14 | 2017-06-15 | Apartsw Consulting Inc. | Continuous integration software development platform and system, and implementation method therefor |
CN107229482A (zh) * | 2017-08-04 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于软件系统开发的方法及系统 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN109634612A (zh) * | 2018-12-04 | 2019-04-16 | 浙江数链科技有限公司 | 持续集成方法、系统、计算机设备和存储介质 |
-
2019
- 2019-07-25 CN CN201910678265.XA patent/CN110377334A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010889A1 (en) * | 2014-01-27 | 2017-01-12 | Hewlett Packard Enterprise Development Lp | Continuous integration with reusable context aware jobs |
US20170169370A1 (en) * | 2015-12-14 | 2017-06-15 | Apartsw Consulting Inc. | Continuous integration software development platform and system, and implementation method therefor |
CN107229482A (zh) * | 2017-08-04 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于软件系统开发的方法及系统 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN109634612A (zh) * | 2018-12-04 | 2019-04-16 | 浙江数链科技有限公司 | 持续集成方法、系统、计算机设备和存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309633A (zh) * | 2020-03-23 | 2020-06-19 | 上海新炬网络信息技术股份有限公司 | 基于自动化运维的持续性能测试方法 |
CN111562942A (zh) * | 2020-04-30 | 2020-08-21 | 中国银行股份有限公司 | 基于Gitlab的移动APP持续集成装置和方法 |
CN111562942B (zh) * | 2020-04-30 | 2024-04-19 | 中国银行股份有限公司 | 基于Gitlab的移动APP持续集成装置和方法 |
CN112256318A (zh) * | 2020-10-26 | 2021-01-22 | 上海云轴信息科技有限公司 | 一种用于依赖产品的构建方法及设备 |
CN112256318B (zh) * | 2020-10-26 | 2022-12-27 | 上海云轴信息科技有限公司 | 一种用于依赖产品的构建方法及设备 |
CN112596760A (zh) * | 2020-12-09 | 2021-04-02 | 武汉联影医疗科技有限公司 | 软件维护方法、装置和设备 |
CN114780138A (zh) * | 2022-06-17 | 2022-07-22 | 中国空气动力研究与发展中心计算空气动力研究所 | 流场模拟软件代码版本管理方法、装置和存储介质 |
CN114780138B (zh) * | 2022-06-17 | 2022-09-02 | 中国空气动力研究与发展中心计算空气动力研究所 | 流场模拟软件代码版本管理方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377334A (zh) | 持续集成方法及设备 | |
US10127141B2 (en) | Electronic technology resource evaluation system | |
US9858069B2 (en) | Transitioning between iterations in agile software development | |
EP2778929B1 (en) | Test script generation system | |
US9336023B2 (en) | Visual generation of mobile applications based on data models | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
US20140032606A1 (en) | Collapsible groups in graphical workflow models | |
CN102722381B (zh) | 优化升级任务的技术 | |
US9569204B2 (en) | End-to-end continuous integration and verification of software | |
US8209211B2 (en) | Apparatus and methods for requirements decomposition and management | |
US20070022407A1 (en) | Automated software testing and validation system | |
CN109614424A (zh) | 页面布局生成方法、装置、计算设备和介质 | |
CN104050275A (zh) | 项目评审方法和系统 | |
CN102662939B (zh) | 树形数据结构的展示方法与系统 | |
CN109901985B (zh) | 分布式测试装置及方法、存储介质和电子设备 | |
CN104881355A (zh) | 一种用于检测测试覆盖的方法和系统 | |
CN103853663A (zh) | 应用程序测试方法及系统 | |
Salihoglu et al. | Graft: A debugging tool for apache giraph | |
CN110825395B (zh) | 多插件分层部署系统、设备及介质 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
CN105512039B (zh) | 一种软件测试申请单的生成方法和装置 | |
CN107451058A (zh) | 一种软件开发方法和装置 | |
CN104166541A (zh) | 用于更新被测控件库的方法和装置 | |
CN110347423A (zh) | 文件修改上线的管理方法和装置 | |
JP5319643B2 (ja) | ソフトウェアプロダクトライン開発支援装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191025 |
|
RJ01 | Rejection of invention patent application after publication |