一种持续集成方法、装置、电子设备及存储介质与流程

文档序号:15517706发布日期:2018-09-25 18:45阅读:140来源:国知局

本发明涉及计算机技术领域,特别是涉及一种持续集成方法、装置、电子设备及存储介质。



背景技术:

随着互联网公司生产效率的提高,软硬件的迭代频率越来越高,以周或者天为单位的产品迭代升级现象非常普遍。这对产品测试的效率有较高的要求,传统的手工测试已经无法跟上需求的速度,尤其对于大型多模块程序而言,如果每次迭代都要求手工回归测试所有功能是不切实际的,所以在方便做持续集成的项目中,持续集成被广泛应用。持续集成是一种软件开发实践,是软件开发过程中的一个重要组成部分。持续集成一般包含三个基本实践:统一代码库、自动集成、自动测试。在持续集成中,开发人员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以集成多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成的错误,这种检验方法可以显著减少集成引起的问题,并且加快团队合作软件开发的速度。

在实际的应用过程中,持续集成耗费的时间长短与项目的大小存在正比例关系,越庞大的项目,做一次持续集成的时间成本就越高;需要测试的方面越多,用到的持续集成工具就越复杂。现有的持续集成技术,通常选择基于jenkins平台的持续集成,jenkins是一种持续集成工具,jenkins的大致使用方法是,在一台服务器上独立部署jenkins服务、编写脚本形成持续集成的步骤、用流水线pipeline进行持续集成;然后将集成结果通过另外一个测试平台进行测试,以检验集成中的错误,集成平台和测试平台为两个独立的工作平台。

现有的持续集成技术中,由于持续集成平台与测试平台代码库的功能是分离的,持续集成的结果需要通过测试人员在测试平台上查看测试结果以后,反馈给研发人员,持续集成的结果对代码质量本身并没有直接反馈作用,需要通过另外的测试平台反馈测试结果,反馈效率低,从而导致持续集成的效率较低。



技术实现要素:

本发明实施例的目的在于提供一种持续集成方法、装置、电子设备及存储介质,可以实现快速有效的将代码进行持续集成,并能够及时反馈集成结果,提高了集成的效率。具体技术方案如下:

本发明实施例提供了一种持续集成方法,包括:

接收待发布的代码;

对待发布的代码进行集成测试;

将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试;

检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;

根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件;

将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件;

发布通过限制条件的待发布的代码。

具体的,接收待发布的代码之后,还包括:

检测待发布的代码是否为待合并的代码;

当待发布的代码不是待合并的代码时,将待发布的代码返回给终端。

具体的,对待发布的代码进行集成测试,包括:

解析待发布的代码,得到至少一个函数;

针对每个函数,分别进行测试,以执行待发布的代码,进而获得待发布的代码的执行结果。

具体的,检测通过集成测试的待发布的代码,得到待发布的代码的代码参数,包括:

获取待发布的代码的地址;

通过地址检测待发布的代码,得到待发布的代码的代码参数。

具体的,代码参数包括:待发布的代码的代码增量覆盖率、评论人数、评论数量。

具体的,执行结果包括待发布的代码的状态码,还包括:

根据状态码,生成第一发布失败原因信息;

将第一发布失败原因信息返回给终端。

具体的,根据所述代码参数,判断待发布的代码是否通过待发布的代码的限制条件,之后,还包括:

统计未通过限制条件的待发布的代码的代码参数;

根据代码参数,生成第二发布失败原因信息;

将第二发布失败原因信息返回给终端。

本发明实施例还提供了一种持续集成装置,装置包括:

接收模块,用于接收待发布的代码;

测试模块,用于对待发布的代码进行集成测试;

第一返回模块,用于将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试;

第一检测模块,用于检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;

判断模块,用于根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件;

第二返回模块,用于将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件;

发布模块,用于发布通过限制条件的待发布的代码。

具体的,装置还包括:

第二检测模块,用于检测待发布的代码是否为待合并的代码;

第三返回模块,用于当第二检测模块检测到待发布的代码不是待合并的代码时,将待发布的代码返回给终端。

具体的,测试模块包括:

解析子模块,用于解析待发布的代码,得到至少一个函数;

测试子模块,用于针对每个函数,分别进行测试,以执行待发布的代码,进而获得待发布的代码的执行结果。

具体的,第一检测模块包括:

获取子模块,用于获取待发布的代码的地址;

检测子模块,用于通过地址检测待发布的代码,得到待发布的代码的代码参数。

具体的,所述代码参数包括:待发布的代码的代码增量覆盖率、评论人数、评论数量。

具体的,装置还包括:

第一失败信息生成模块,用于根据状态码,生成第一发布失败原因信息;

第一失败信息返回模块,用于将第一发布失败原因信息和待发布的代码返回给终端。

具体的,装置还包括:

统计模块,用于统计未通过限制条件的待发布的代码的代码参数;

第二失败信息生成模块,用于根据状态码,生成第二发布失败原因信息;

第二失败信息返回模块,用于将第二发布失败原因信息和待发布的代码返回给终端。

本发明实施例提供了一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令时,实现上述的持续集成方法步骤。

本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述的持续集成方法步骤。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的持续集成方法。

本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述的持续集成方法。

本发明实施例提供的持续集成方法、装置、电子设备及存储介质,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据集成结果,重新调整代码,提高了代码的集成效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种实施例提供的持续集成方法的流程图;

图2a为本发明实施例提供的在gitlab-ci平台接收到待发布的代码后自动构建的结果示意图;

图2b为本发明实施例提供的项目执行集成测试后的结果示意图;

图3为本发明另一种实施例提供的持续集成方法的流程图;

图4为发明又一种实施例提供的持续集成方法的流程图;

图5为发明实施例提供的检测通过集成测试的待发布的代码,得到待发布的代码的代码参数的流程图;

图6为本发明实施例提供的将未通过集成测试的待发布的代码返回给终端的方法的流程图;

图7为本发明实施例提供的将未通过限制条件的待发布的代码返回给终端的方法的流程图;

图8为本发明实施例提供的将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件的方法的流程图;

图9为本发明一种实施例提供的持续集成装置的结构示意图;

图10为本发明又一种实施例提供的持续集成装置的结构示意图;

图11为本发明另一种实施例提供的持续集成装置的结构示意图;

图12为本发明实施例提供的第一检测模块的结构示意图;

图13为本发明再一种实施例提供的持续集成装置的结构示意图;

图14为本发明再一种实施例提供的持续集成装置的结构示意图;

图15为本发明实施例提供的电子设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高代码的集成效率,本发明实施例提供了一种持续集成方法、装置、电子设备及存储介质。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例提供了一种持续集成方法,图1为本发明实施例提供的基于gitlab-ci的持续集成方法的流程图,包括如下步骤:

步骤101,接收待发布的代码。

本发明实施例提供的方法可以应用于基于gitlab-ci的持续集成平台。现有的持续集成技术中,最常用的是基于jenkin平台的持续集成,jenkins平台应用最广泛、插件最全面、可定制程度高。其它较通用的平台有travis、circleci、semaphoreci等。这些持续集成平台各有优势,但都需要额外的学习和使用成本,这些框架的基本用法和进阶用法一般会由测试人员学习之后进行操作,研发人员需要登录到其他的系统中使用持续集成平台,这会降低执行效率。另外,由于持续集成平台与代码库功能分离,持续集成生成的结果需要通过测试人员的反馈,导致测试人员需要付出额外的人力去关注持续集成的结果。本发明实施例采用gitlab-ci作为持续集成的平台,可以实现对项目的自动构建跟测试,在gitlab-ci上可以实现持续集成,并可以查看集成测试结果。

本发明实施例提供的方法基于gitlab-ci平台,在代码库gitlab中可以进行持续集成的设置和权限设置,例如权限设置成只有开发人员可以进行集成测试,其他人员无权限登录等,开发人员可以通过账号密码进行登录;持续集成的设置为只能通过合并代码的方式完成代码提交,并且只有通过本发明实施例提供的方法进行持续集成测试才能将代码合并。

首先,gitlab-ci持续集成平台的处理器接收待发布的代码,待发布的代码可以由多个函数组成,包括主函数、调用函数等或者是规范格式的程序模块,每个程序模块可以实现不同的功能,比如加减乘除计算等。

步骤102,对待发布的代码进行集成测试。

在接收待发布的代码以后,gitlab-ci持续集成平台的可以对待发布的代码进行集成测试。将待发布的代码进行集成,集成的方法为触发集成平台的自动构建,由于gitlab-ci平台可以实现对项目的自动构建,所以在接收到待发布的代码时,会触发自动构建功能,对待发布的代码进行集成测试。

在一些示例中,以实际的集成测试为例,图2a为在本步骤中,在gitlab-ci平台接收到待发布的代码后自动构建的结果,可以在gitlab-ci平台的项目列表上观察得到。图中的第一个符号110、第二个符号120、第三个符号130分别表示三个不同的构建后的项目。

图2b为针对于一个项目,可以看到相应的集成测试的结果,图中执行单元测试之后的测试状态显示栏210,测试状态显示栏210下是测试结果,有通过和未通过两种,构建编号栏220下构建标号,分别对应着不同测试结果下的构建标号。

集成测试的方法可以有接口测试、系统测试、单元测试等,针对于不同的测试工程和对于测试效率的需要,可以采取不同的测试方法。本发明实施例中,选择单元测试进行集成。因为单元测试具有对基础环境依赖少、对第三方模块依赖少、运行速度快的特点,通过单元测试的回归可以迅速发现基础问题,具有很强的通用性。本发明实施例所提供的方法可适用于多个项目,可以通过规范单元测试的运行方式,使一套gitlab-ci脚本适用于多个项目。如果要加入其它环节的测试脚本,如接口测试、系统测试等,应该考虑到整个流程执行的时间。从测试工程效率的角度来看,一次持续集成的回归测试应控制在1个小时以内,大于1个小时的时间范围的测试不适用于本发明。

步骤103,将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试。

在对待发布的代码进行集成测试以后,根据集成测试结果,将代码分别进行不同的处理。当待发布的代码中有一部分未通过集成测试,那么就将所有待发布的代码返回。例如,将通过集成测试的待发布的代码继续下一步流程,将未通过集成测试的待发布的代码返回给研发人员所在的终端,终端接收到代码以后,研发人员可以在终端设备上查看返回的代码,并对代码进行修改,重新提交代码,进入步骤101,以使修改的代码通过集成测试。

将未通过集成测试的待发布的代码返回给终端,是为了便于研发人员进行查看和修改,方便进入代码集成的下一环节,将待发布代码返回的终端和发送待发布代码的终端可以是同一个终端,也可以为不同的终端,但是都为研发人员所在的终端。

步骤104,检测通过集成测试的待发布的代码,得到待发布的代码的代码参数。

针对步骤103中通过集成测试的待发布的代码,gitlab-ci持续集成平台的处理器对代码进行检测,并且检测代码的代码参数。由于在待发布的代码中,可以包括多个函数,当代码通过集成测试以后,会根据代码的集成测试结果得到代码的代码参数,代码参数为待发布的代码本身具有的参数,例如代码增量覆盖率等,代码增量覆盖率可以用来评价集成测试的效率和代码的质量,可以验证是否全部或者大部分覆盖了待发布的代码。代码参数还可以为代码自带的其他条件,比如对于该代码的评论人数、评论数量等都能够反应该代码的质量。

步骤105,根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件。

得到待发布的代码的代码参数以后,判断是否通过待发布的代码的限制条件,限制条件为预设的限制条件,将得到的代码参数和预设的限制条件进行比较。代码参数可以为代码增量覆盖率,待发布的代码的限制条件可以为代码增量覆盖率是否达到某个数值,例如80%,即当代码增量覆盖率超过80%时,代码参数才通过限制条件,没有达到80%时则认为没有通过限制条件。

根据步骤104中得到的不同的代码参数,可以对应有不同的限制条件,针对不同的代码参数,判断是否可以通过待发布的代码的限制条件。

步骤106,将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件。

根据不同的判断结果,可以将待发布的代码进行不同的处理,将未通过限制条件的待发布的代码返回给终端,终端接收到代码以后,开发人员可以在终端设备上查看返回的代码,对未通过限制条件的代码进行修改,或者也重新设置限制条件,以使待发布的代码通过限制条件。

步骤107,发布通过限制条件的待发布的代码。

当代码通过限制条件时,gitlab-ci持续集成平台将代码进行发布和编译,完成了一次持续集成。

本发明实施例提供的基于gitlab-ci的持续集成方法,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

本发明实施例可以使持续集成的结果简单明了的在代码库中展现,提高了研发人员对持续集成的参与程度;将持续集成的过程合并到研发过程中,节约了研发人员的学习成本和测试人员的沟通成本,提高了集成的效率;改进了集成的流程,使持续集成的结果形成强制反馈,将持续集成的结果直接反馈给研发流程,形成真正的闭环测试,在实际项目的集成测试中,实现快速高效的项目迭代。

作为本发明又一种具体实施方式,结合上述实施例,在步骤101的接收待发布的代码之后的方法流程图,如图3所示,包括如下步骤:

步骤108,检测待发布的代码是否为待合并的代码。

在接收待发布的代码以后,由于本发明实施例采用的方法需要通过合并代码的方式进行代码的编译和提交,所以在接收代码之后,需要优先检测一下接收到的代码是否为待合并的代码,将待合并的代码进行步骤102的操作。

步骤109,当待发布的代码不是待合并的代码时,将待发布的代码返回给终端。

当接收到的代码不是待合并的代码时,将代码返回给终端,不进行处理,重新接收新的待发布的代码。

本实施例中通过检测待发布的代码是否为待合并的代码,将不符合条件的代码返回给终端,并接收新的待发布的代码,将不是待合并的代码淘汰,可以提高平台的集成效率。

作为本发明另一种具体实施方式,结合上述实施例,步骤102的对待发布的代码进行集成测试,如图4所示,包括如下步骤:

步骤1021,解析待发布的代码,得到至少一个函数。

在步骤102的对待发布的代码进行集成测试之中,具体的集成测试方法包括:首先将待发布的代码进行解析,待发布的代码中可以包括一个或者多个函数,将待发布的代码进行解析时,可以得到至少一个函数。

步骤1022,针对每个函数,分别进行测试,以执行待发布的代码,进而获得待发布的代码的执行结果。

针对得到的至少一个函数,分别对每个函数进行测试,这种方法也可以称之为单元测试,对待发布的代码中的最小单元进行测试,测试每个单元的可用性,进而得到待发布的代码的执行结果。在本发明实施例中,测试的是每个函数的功能和可用性,分别测试每个函数,执行待发布的代码,从而确定代码是否可用。

作为本发明另一种具体的实施方式,步骤104的检测通过集成测试的待发布的代码,得到待发布的代码的代码参数如图5所示,包括如下步骤:

步骤1041,获取待发布的代码的地址。

在待发布的代码通过集成测试后,检测待发布的代码的方法可以为获取待发布的代码的地址。每个待发布的代码在通过集成测试以后,都可以直接读取该代码的地址,并可以根据地址将所有待发布的代码进行合并。

步骤1042,通过地址检测待发布的代码,得到待发布的代码的代码参数。

通过获取得到的地址,对待发布的代码进行检测,从而得到待发布的代码的代码参数。由于代码可以由多个函数或者功能程序模块组成,在检测代码时,无法对代码中包含的所有函数进行统一的检测,但通过代码的地址得到代码的代码参数,可以通过代码中每个函数或者功能程序模块的地址,从而确定待发布的代码的代码参数。

具体的,上述实施例中的代码参数包括待发布的代码对应的代码增量覆盖率、评论人数、评论数量,其中,待发布代码的代码参数是可以表征代码中的参数属性信息,可以为代码增量覆盖率、评论人数、评论数量,也可以根据实际的测试需求,限定其他的代码参数。

本实施例中可以通过检测待发布的代码的代码增量覆盖率、评论人数、评论数量,并将获取得到的代码增量覆盖率、评论人数、评论数量作为待发布的代码的代码参数的方法,将代码增量覆盖率、评论人数、评论数量作为待发布代码的限制项,检测上述三个参数,只要有一个参数不满足限制条件,该代码就不能通过集成测试,将不满足限制条件的代码返回给研发人员所在的终端,及时反馈给终端,可以提高整体的集成效率。

在本发明实施例中,限制条件的数量可以根据工程的实际需求来限定,当只限定了两个限制项,例如评论人数和评论数量,这两个参数只要有一个不满足限制条件时,就将不满足限制条件的代码返回给研发人员所在的终端。

作为本发明实施例的一个具体的实施例,步骤103中将未通过集成测试的待发布的代码返回给终端的方法如图6所示,还包括:

步骤1031,执行未通过集成测试的待发布的代码,得到执行结果,执行结果中包括待发布的代码的状态码。

在将未通过集成测试的待发布的代码返回给终端时,为了得知未通过集成测试的原因,执行未通过集成测试的待发布的代码,得到代码的执行结果,执行结果中包括了待发布代码的状态码,状态码可以表示未通过的代码的状态信息,当代码的代码增量覆盖率未达标时,状态码为0;当代码的基本单元功能测试不达标时,状态码为1;当待发布的代码中存在编译错误时,状态码为2。综上,针对不同的未通过原因,状态码是不相同的,数值可以根据实际应用和需要而设定。

步骤1032,根据状态码,生成第一发布失败原因信息。

根据执行结果中的状态码,由于不用状态码代表了不同的未通过集成测试的原因,所以针对不同的状态码,生成不同的发布失败原因信息,将第一次你返回给终端的发布失败原因信息作为第一发布失败原因信息,其中包括了发布失败的原因,例如当状态码为0时,说明代码的代码增量覆盖率未达标,达标率设定为80%,实际代码增量覆盖率为60%,那么发布失败原因信息可以包括达标率和实际代码增量覆盖率。

步骤1033,将第一发布失败原因信息和待发布的代码返回给终端。

生成第一发布失败原因信息以后,将第一发布失败原因信息和待发布的代码返回给终端,以使可以在终端查看返回代码的开发人员根据第一发布失败原因信息修改代码。

本实施例通过执行未通过集成测试的待发布的代码,并根据执行结果生成对应的状态码,根据状态码生成发布失败原因信息,将未通过集成测试的代码和发布失败原因信息发送给终端,以使开发人员可以根据发布失败原因信息修改代码,有利于加快修改后的代码通过集成测试,提高集成效率。

作为本发明实施例的一个具体的实施例,步骤106中将未通过限制条件的待发布的代码返回给终端的方法如图7所示,包括如下步骤:

步骤1061,统计未通过限制条件的待发布的代码的代码参数。

将未通过限制条件的待发布的代码,统计代码参数,代码参数可以为评论人数、评论数量等可以表征代码性能状态的参数。统计代码参数中的评论人数、评论数量。

步骤1062,根据代码参数,生成第二发布失败原因信息。

根据统计得到的评论人数、评论数量和限制条件,生成第二发布失败原因信息,其中包括了发布失败的原因,例如代码参数中包括的评论人数为10、评论数量为20时,限制条件为评论人数为15、评论数量为25,那么第二发布失败原因信息可以包括统计后的评论人数10、评论数量20,以及限制条件中的评论人数15和评论数量25。

步骤1063,将第二发布失败原因信息和待发布的代码返回给终端。

生成第二发布失败原因信息以后,将第二发布失败原因信息和待发布的代码返回给终端,以使可以在终端查看返回代码的开发人员根据第二发布失败原因信息修改代码。

本实施例通过统计未通过限制条件的待发布的代码的代码参数,并根据代码参数,生成第二发布失败原因信息,将未通过限制条件的代码和第二发布失败原因信息发送给终端,以使开发人员可以根据第二发布失败原因信息修改代码,有利于加快修改后的代码通过集成测试,提高集成效率。

下面通过一个具体实例来对本发明实施例中将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件的方法进行简单说明。图8为本发明实施例在实际场景中的应用流程图,包括:

步骤801,对待发布的代码进行评论。

当待发布的代码未通过限制条件时,将代码返回,并进行评论。

步骤802,获取待发布的合并地址。

获取待发布的代码对应的地址,得到合并代码的地址。

步骤803,根据合并地址筛选出待发布的代码的评论。

根据合并后的地址筛选评论,选出待发布的代码的相关评论。

步骤804,确定评论数量和评论人数,判断是否满足限制条件。

根据筛选出的代码的相关评论,确定代码的评论数量和评论人数,判断是否满足评论的限制条件,例如评论人数和评论数量的数量要求。

步骤805,将满足限制条件的待发布的代码发布。

判断是否满足限制条件时,只有当满足了限制条件中所有的条件时,才能将代码发布,例如当限制条件是评论人数为10个,评论数量为15个,那么只有当筛选出的代码的相关评论中的评论人数和数量分别为10和15时,才可以将代码发布。

本发明实施例还提供了一种持续集成装置,装置的结构图示意图如图9所示,包括:

接收模块901,用于接收待发布的代码;

测试模块902,用于对待发布的代码进行集成测试;

第一返回模块903,用于将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试;

第一检测模块904,用于检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;

判断模块905,用于根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件;

第二返回模块906,用于将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件;

发布模块907,用于发布通过限制条件的待发布的代码。

本发明实施例提供的持续集成装置,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

具体的,如图10所示,装置的结构还包括:

第二检测模块908,用于检测待发布的代码是否为待合并的代码;

第三返回模块909,用于当第二检测模块908检测到待发布的代码不是待合并的代码时,将待发布的代码返回给终端。

具体的,测试模块902,如图11所示,包括:

解析子模块9021,用于解析待发布的代码,得到至少一个函数;

测试子模块9022,用于针对每个函数,分别进行测试,以执行所述待发布的代码,进而获得所述待发布的代码的执行结果。

具体的,第一检测模块904,如图12所示,包括:

获取子模块9041,用于获取待发布的代码的地址;

检测子模块9042,用于通过地址检测所述待发布的代码,得到待发布的代码的代码参数。

具体的,代码参数包括:待发布的代码的代码增量覆盖率、评论人数、评论数量。

具体的,装置的结构示意图如图13所示,还包括:

第一失败信息生成模块9010,用于根据状态码,生成第一发布失败原因信息;

第一失败信息返回模块9011,用于将第一发布失败原因信息和待发布的代码返回给终端。

具体的,装置的结构示意图如图14所示,还包括:

统计模块9012,用于统计未通过限制条件的待发布的代码的代码参数;

第二失败信息生成模块9013,用于根据状态码,生成第二发布失败原因信息;

第二失败信息返回模块9014,用于将第二发布失败原因信息和待发布的代码返回给终端。

本发明实施例提供了一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令时,实现上述持续集成方法步骤。

本发明实施例还提供了一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,

存储器1503,用于存放计算机程序;

处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:

接收待发布的代码;

对待发布的代码进行集成测试;

将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试;

检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;

根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件;

将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件;

发布通过限制条件的待发布的代码。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的电子设备,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现如下的持续集成方法步骤:

接收待发布的代码;

对待发布的代码进行集成测试;

将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试;

检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;

根据代码参数,判断待发布的代码是否通过待发布的代码的限制条件;

将未通过限制条件的待发布的代码返回给终端,以使待发布的代码通过限制条件;

发布通过限制条件的待发布的代码。

本发明实施例提供的计算机可读存储介质,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述持续集成方法。

本发明实施例提供的包含指令的计算机程序产品,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述持续集成方法。

本发明实施例提供的计算机程序,可以实现将代码集成的同时,及时反馈集成结果,并根据集成结果进行调整,提高集成效率。首先接收待发布的代码;对待发布的代码进行集成测试;将未通过集成测试的待发布的代码返回给终端,以使待发布的代码通过集成测试,形成第一次反馈;检测通过集成测试的待发布的代码,得到待发布的代码的代码参数;根据得到的代码参数,判断代码是否通过待发布的代码的限制条件;将未通过限制条件的代码返回给终端,以使待发布的代码通过限制条件,形成第二次反馈;将通过限制条件的待发布的代码发布,完成代码的集成。本发明实施例提供的方法通过两次不同的实时反馈,形成完整闭环的持续集成,及时反馈集成结果,并根据根据集成结果,重新调整代码,提高了代码的集成效率。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

需要说明的是,本发明实施例提供的装置、电子设备、存储介质、计算机程序产品、计算机程序分别是应用上述基于gitlab-ci的持续集成方法的装置、电子设备、存储介质、计算机程序产品、计算机程序,则上述基于gitlab-ci的持续集成方法的所有实施例均适用于该装置、电子设备、存储介质、计算机程序产品、计算机程序,且均能达到相同或相似的有益效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1