CN108491210A - 代码持续集成方法、装置、系统及服务器 - Google Patents
代码持续集成方法、装置、系统及服务器 Download PDFInfo
- Publication number
- CN108491210A CN108491210A CN201810260482.2A CN201810260482A CN108491210A CN 108491210 A CN108491210 A CN 108491210A CN 201810260482 A CN201810260482 A CN 201810260482A CN 108491210 A CN108491210 A CN 108491210A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- code
- service mirror
- terminal
- test
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明提供了一种代码持续集成方法、装置、系统及服务器,涉及持续集成技术领域。代码持续集成方法应用于服务器,该方法包括获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;将获得的目标代码进行编译,生成服务镜像;将服务镜像发送给测试终端,以便测试终端对服务镜像进行测试;当测试通过后,依据集成参数将服务镜像或服务镜像的存储地址发送给对应的部署终端。本发明提供的代码持续集成方法、装置、系统及服务器可实现十分方便快捷地对代码进行集成、部署,无需进行复杂的配置,进一步方便团队能够更快地开发内聚的软件。
Description
技术领域
本发明涉及持续集成技术领域,具体而言,涉及一种代码持续集成方法、装置、系统及服务器。
背景技术
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
目前,现有技术中常采用的Jenkins等集成工具对代码进行持续集成,然而,采用这样的方式存在配置复杂度高、二次开发复杂等缺点。
发明内容
有鉴于此,本发明实施例的目的在于提供一种代码持续集成方法、装置、系统及服务器。
为达到上述目的,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种代码持续集成方法,应用于服务器,所述方法包括:
获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
将获得的所述目标代码进行编译,生成服务镜像;
将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
可选地,所述将获得的所述目标代码进行编译,生成服务镜像,包括:
将获得的所述目标代码进行编译后压缩,得到压缩格式的所述服务镜像。
可选地,所述方法还包括:
获得第三用户终端发送的需求项目信息;
当不存在与所述需求项目信息对应的服务时,创建代码仓库;
其中,所述代码仓库用于存储所述目标代码。
可选地,所述测试终端的数量为多个,所述将所述服务镜像发送给测试终端,包括:
将所述服务镜像依次发送给多个所述测试终端;
其中,当将所述服务镜像发送给多个所述测试终端中第一个测试终端以后的测试终端时,需满足所述服务镜像在被发送的所述测试终端的在前一个测试终端已被测试通过。
第二方面,本发明实施例提供了一种代码持续集成装置,应用于服务器,所述代码持续集成装置包括:
第一获取模块,用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
编译模块,用于将获得的所述目标代码进行编译,生成服务镜像;
第一发送模块,用于将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
第二发送模块,用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
可选的,所述编译模块用于将获得的所述目标代码进行编译后压缩,得到压缩格式的所述服务镜像。
可选的,代码持续集成装置还包括:
第二获取模块,用于获得第三用户终端发送的需求项目信息;
判断模块,用于判断是否存在与所述需求项目信息对应的服务;
创建模块,用于当不存在与所述需求项目信息对应的服务时,创建代码仓库;
其中,所述代码仓库用于存储所述目标代码。
可选的,所述测试终端的数量为多个,所述第一发送模块用于将所述服务镜像依次发送给多个所述测试终端;
其中,当将所述服务镜像发送给多个所述测试终端中第一个测试终端以后的测试终端时,需满足所述服务镜像在被发送的所述测试终端的在前一个测试终端已被测试通过。
第三方面,本发明实施例提供了一种代码持续集成系统,所述代码持续集成系统包括服务器和与所述服务器通信连接的测试终端;
所述服务器用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;将获得的所述目标代码进行编译,生成服务镜像;以及将所述服务镜像发送给测试终端;
所述测试终端用于对所述服务镜像进行测试;
所述服务器还用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
可选的,所述测试终端用于调用测试用例对所述服务镜像进行测试;
所述服务器用于当所述调用测试的测试误差率低于预先设定的阈值时,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
第四方面,本发明实施例提供了一种服务器,所述服务器包括:
存储器;
处理器;以及
代码持续集成装置,所述代码持续集成装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模组,所述代码持续集成装置包括:
第一获取模块,用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
编译模块,用于将获得的所述目标代码进行编译,生成服务镜像;
第一发送模块,用于将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
第二发送模块,用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
对于现有技术,本发明提供的代码持续集成方法、装置、系统及服务器具有如下的有益效果:
本发明提供的代码持续集成方法、装置、系统及服务器能够根据用户终端上传的集成参数和目标代码对目标代码进行编译生成服务镜像,然后将服务镜像发送给测试终端进行测试,并当测试通过后根据集成参数将服务镜像或服务镜像的存储地址发送给对应的部署终端以对集成后的代码进行部署。如此,即可实现十分方便快捷地对代码进行集成、部署,无需进行复杂的配置,进一步方便团队能够更快地开发内聚的软件。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的服务器与终端设备进行交互的示意图。
图2为本发明较佳实施例提供的服务器的方框示意图。
图3为本发明较佳实施例提供的代码持续集成方法的流程图。
图4为本发明较佳实施例提供的代码持续集成装置的功能模块示意图。
图5为本发明较佳实施例提供的代码持续集成系统的功能模块图。
图标:100-服务器;110-代码持续集成装置;111-第一获取模块;112-编译模块;113-第一发送模块;114-第二发送模块;115-第二获取模块;116-判断模块;117-创建模块;130-存储器;150-处理器;170-通信单元;200-第一用户终端;300-第二用户终端300;400-第三用户终端;500-测试终端;600-部署终端;700-网络。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是本发明较佳实施例提供的服务器100与终端设备进行交互的示意图,所述服务器100通过网络700分别与第一用户终端200、多个第二用户终端300、第三用户终端400、测试终端500以及部署终端600进行通信连接,以进行数据通信或交互。所述服务器100可以是网络服务器、数据库服务器等,所述第一用户终端200、所述第二用户终端300、所述第三用户终端400、所述测试终端500以及所述部署终端600可以是个人电脑(personalcomputer,PC)、平板电脑等,所述网络700可以是有线或无线网络。
如图2所示,是所述服务器100的方框示意图。所述服务器100包括代码持续集成装置110、存储器130、处理器150和通信单元170,各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。代码持续集成装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器130中的软件功能模块。所述处理器150用于执行所述存储器130中存储的可执行模块,例如代码持续集成装置110所包括的软件功能模块及计算机程序等。
其中,所述存储器130可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器130用于存储程序,所述处理器150在接收到执行指令后,执行所述程序。所述通信单元170用于通过所述网络700建立所述第一用户终端200、所述第二用户终端300、所述第三用户终端400、所述测试终端500以及所述部署终端600与所述服务器100的通信单元170之间的通信连接。
请参阅图3,是本发明较佳实施例提供的应用于图2所示的代码持续集成装置110的代码持续集成方法的流程图。下面将对图3所示的流程进行详细阐述。
步骤S101,获得第三用户终端发送的需求项目信息。
本发明实施例提供的方法应用于服务100,用于开发团队多个成员编写的代码持续集成。在将代码持续集成之前,开发团队的管理人员或成员可登陆第三用户终端400,并通过第三用户终端400录入需求项目信息,第三用户终端400将录入的需求项目信息发送给服务器100,服务器100获得第三用户终端400发送的需求项目信息。所述需求项目信息可以是,但不限于待持续集成的项目的名称、编号等,本发明实施例中不做具体限定。
步骤S102,判断是否存在与所述项目需求信息对应的服务,若不存在,则执行步骤S103;若存在,则执行步骤S103。
服务器100获得第三用户终端400发送的需求项目信息后,判断是否已存在与所述项目需求信息对应的服务(即与项目需求信息对应的持续集成项目),如果不存在,则执行步骤S103。如果存在,则执行步骤S104。
步骤S103,创建代码仓库。
如果服务器100未存在与所述项目需求信息对应的服务,则服务器自动创建一代码仓库,所述代码仓库用于存储当前持续集成项目的代码。
需要说明的是,步骤S101-S103不是本发明实施例的必要步骤,在其他的一些实施例中也可不包含步骤S101-S103。例如,当项目并非首次持续集成时可省略步骤S101-S103。
步骤S104,获得第一用户终端上传的集成参数和第二用户终端上传的目标代码,并将目标代码存储至代码仓库。
在进行代码持续集成时,开发团队的管理人员或成员可登陆第一用户终端200,并上传持续集成所对应项目的集成参数,所述集成参数包括有待部署该项目的部署终端600的IP地址,如此当持续集成后可根据该IP地址将持续集成好的代码发送至部署终端600进行部署。所述集成参数还包括有部署终端600的内存容量及磁盘容量等,以便当持续集成的代码超出部署终端600的内存容量及磁盘容量时提醒用户重新设定部署终端600,保障部署终端600有足够的存储空间部署持续集成后的代码。服务器100获得第一用户终端200上传的集成参数。
需要说明的是,本发明实施例中,所述第一用户终端200与所述第三用户终端400可为同一终端设备,也可以为不同的终端设备,以所述第一用户终端200与所述第三用户终端400为同一终端设备为较佳。
与此同时,开发团队的成员可通过多个第二用户终端300,将不同成员需要集成的代码发送给服务器100,服务器100获得多个第二用户终端分别上传的目标代码。获得第二用户终端300上传的目标代码后,服务器100将获得的目标代码存储至已有的代码仓库或者新建的代码仓库中。
步骤S105,将获得的所述目标代码进行编译,生成服务镜像。
服务器100获得多个第二用户终端分别上传的目标代码并存储至代码仓库后,对获得的多个第二用户终端300分别上传的目标代码进行编译后压缩,生成一压缩包,并根据压缩包获得其镜像文件,即服务镜像。
需要说明的是,本发明实施例中,服务镜像是根据目标代码编译后压缩得到的。当然,在其他的一些实施例中,服务镜像也可以根据目标代码编译得到,而不经过压缩。
另外,在进行压缩的过程中,压缩的内容还可以包括一些其他信息,例如执行本发明实施例方法的软件操作系统的相关数据信息。
步骤S106,将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试。
服务器100预先配置有与其建立通信连接的测试终端500,所述测试终端500用于测试编译的服务镜像是否能够正常运行,所述测试终端500的数量可以是一个或多个。较佳的,本发明实施例中,所述测试终端500的数量为多个。
服务器100对目标代码进行编译生成服务镜像后,将所述服务镜像依次发送给该多个测试终端500,以便多个测试终端500对编译生成的服务镜像依次进行测试。其中,在将服务镜像依次发送给多个测试终端500的过程中,遵循如下规则:当将服务镜像发送给多个测试终端500中第一个测试终端500以后的测试终端500时,需满足服务镜像在被发送的测试终端500的在前一个测试终端500已被测试通过。即,只要其中一个未测试通过,则不再向下一个测试终端500发送服务镜像。如此,当服务镜像所对应的目标代码在编写过程中编写错误而导致服务镜像无法被其中一个测试终端500测试通过时,无需后续的测试终端500再次对其进行测试,降低测试终端500的资源占用。
步骤S107,当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
服务器100将服务镜像依次发送给该多个测试终端500进行测试时,每个测试终端500测试通过后,会向服务器100反馈一测试通过的确认信息。如果服务器100收到所有的测试终端500反馈的确认信息,则说明在服务镜像被测试通过,即目标代码持续集成后能够正常的运行。此时,服务器100依据集成参数中部署终端600的IP地址,将该生产的服务镜像或服务镜像的存储地址发送给部署终端600,以便部署终端600将生成的服务镜像部署在其上,或根据存储地址下载该服务镜像以进行部署。
综上所述,本发明实施例提供的代码持续集成方法能够自动判断是否存与输入的项目信息对应的服务,并当不存在与项目需求信息对应的服务时创建代码仓库并将上传的用于持续集成的目标代码存储至代码仓库,以方便后续持续集成。同时,将获得的目标代码进行编译生成服务镜像后,将该服务镜像依次发给多个测试终端500进行依次检测,以有效保障目标代码的准确。且当其中一个测试终端500未测试通过,则不再向下一个测试终端500发送服务镜像,如此当服务镜像所对应的目标代码在编写过程中编写错误而导致服务镜像无法被其中一个测试终端500测试通过时,无需后续的测试终端500再次对其进行测试,降低测试终端500的资源占用。本发明实施例提供的代码持续集成方法可实现十分方便快捷地对代码进行集成、部署,无需进行复杂的配置,进一步方便团队能够更快地开发内聚的软件。
请参阅图4,是本发明较佳实施例提供的图2所示的代码持续集成装置110的功能模块示意图。所述代码持续集成装置110包括有:第一获取模块111、编译模块112、第一发送模块113、第二发送模块114、第二获取模块115、判断模块116以及创建模块117。
所述第二获取模块115用于获得第三用户终端发送的需求项目信息。
本发明实施例中,在将代码持续集成之前,开发团队的管理人员或成员可登陆第三用户终端400,并通过第三用户终端400录入需求项目信息,第三用户终端400将录入的需求项目信息发送给服务器100,服务器100通过所述第二获取模块115获得第三用户终端400发送的需求项目信息。
可以理解的,所述第二获取模块115可以用于执行上述的步骤S101。
所述判断模块116用于判断是否存在与所述需求项目信息对应的服务。
获得第三用户终端400发送的需求项目信息后,服务器100通过所述判断模块116判断是否已存在与所述项目需求信息对应的服务。
可以理解的,所述判断模块116可以用于执行上述的步骤S102。
所述创建模块117用于当不存在与所述需求项目信息对应的服务时,创建代码仓库。
当不存在与所述需求项目信息对应的服务时,服务器100通过所述创建模块117创建一代码仓库,所述代码仓库用于存储当前持续集成项目的代码。
可以理解的,所述创建模块117可以用于执行上述的步骤S103。
第一获取模块111用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码。
在进行代码持续集成时,开发团队的管理人员或成员可登陆第一用户终端200,并上传持续集成所对应项目的集成参数,服务器100通过第一获取模块111获得第一用户终端200上传的集成参数。
与此同时,开发团队的成员可通过多个第二用户终端300,将不同成员需要集成的代码发送给服务器100,服务器100通过第一获取模块111获得多个第二用户终端分别上传的目标代码。
可以理解的,所述第一获取模块111可以用于执行上述的步骤S104。
编译模块112用于将获得的所述目标代码进行编译,生成服务镜像。
获得多个第二用户终端分别上传的目标代码并存储至代码仓库后,服务器100通过编译模块112对获得的多个第二用户终端300分别上传的目标代码进行编译后压缩,生成一压缩包,并根据压缩包获得其镜像文件,即服务镜像。
可以理解的,所述编译模块112可以用于执行上述的步骤S105。
第一发送模块113用于将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试。
服务器100预先配置有与其建立通信连接的测试终端500,所述测试终端500用于测试编译的服务镜像是否能够正常运行。在对目标代码进行编译生成服务镜像后,服务器通过第一发送模块113将所述服务镜像依次发送给该多个测试终端500,以便多个测试终端500对编译生成的服务镜像依次进行测试。其中,在将服务镜像依次发送给多个测试终端500的过程中,遵循如下规则:当将服务镜像发送给多个测试终端500中第一个测试终端500以后的测试终端500时,需满足服务镜像在被发送的测试终端500的在前一个测试终端500已被测试通过。即,只要其中一个未测试通过,则不再向下一个测试终端500发送服务镜像。如此,当服务镜像所对应的目标代码在编写过程中编写错误而导致服务镜像无法被其中一个测试终端500测试通过时,无需后续的测试终端500再次对其进行测试,降低测试终端500的资源占用。
可以理解的,所述第一发送模块113可以用于执行上述的步骤S106。
第二发送模块114用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
服务器100通过第一发送模块113将服务镜像依次发送给该多个测试终端500进行测试时,每个测试终端500测试通过后,会向服务器100反馈一测试通过的确认信息。如果服务器100收到所有的测试终端500反馈的确认信息,则说明在服务镜像被测试通过,即目标代码持续集成后能够正常的运行。此时,服务器100通过第二发送模块114依据集成参数中部署终端600的IP地址,将该生产的服务镜像或服务镜像的存储地址发送给部署终端600,以便部署终端600将生成的服务镜像部署在其上,或根据存储地址下载该服务镜像以进行部署。
综上所述,本发明实施例提供的代码持续集成装置110能够自动判断是否存与输入的项目信息对应的服务,并当不存在与项目需求信息对应的服务时创建代码仓库并将上传的用于持续集成的目标代码存储至代码仓库,以方便后续持续集成。同时,将获得的目标代码进行编译生成服务镜像后,将该服务镜像依次发给多个测试终端500进行依次检测,以有效保障目标代码的准确。且当其中一个测试终端500未测试通过,则不再向下一个测试终端500发送服务镜像,如此当服务镜像所对应的目标代码在编写过程中编写错误而导致服务镜像无法被其中一个测试终端500测试通过时,无需后续的测试终端500再次对其进行测试,降低测试终端500的资源占用。本发明实施例提供的代码持续集成方法可实现十分方便快捷地对代码进行集成、部署,无需进行复杂的配置,进一步方便团队能够更快地开发内聚的软件。
请参阅图5,是本发明较佳实施例提供的代码持续集成系统的功能模块图。所述代码持续集成系统包括有服务器100和测试终端500,所述服务器100与所述测试终端500通信连接以进行数据交互。
所述服务器100用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;将获得的所述目标代码进行编译,生成服务镜像;以及将所述服务镜像发送给测试终端500。
本发明实施例中,所述测试终端500的数量为多个,所述服务器100用于将所述服务镜像依次发送给多个所述测试终端500。所述测试终端500用于对所述服务镜像进行测试。
具体的,本发明实施例中,服务器100将服务镜像发送给多个测试终端500进行测试是这样的:首先,服务器100将压缩的服务镜像发送给多个测试终端500的其中一个,接收到该服务镜像的测试终端500将压缩的服务镜像进行解压,并对解压后的服务镜像进行基线检查、静态代码检查等,检查无误后,该测试终端500运行该服务镜像,并在预定的时间段内以心跳的方式检查该服务镜像是否正常启动。
每个测试终端500预先设定有多个测试用例,每个测试用例包括输入值与对应的预想值,如果服务镜像在预定的时间段内一直保持正常启动,则该测试终端500调用多个测试用例对该服务镜像进行测试。如果将某测试用例的输入值作为所述服务镜像的输入,得到的输出值与对应的预想值相同则说明测试通过,否则测试未通过。
如果多个测试用例的未通过率(即测试误差率)低于预先设定的阈值,则说明服务镜像在当前测试终端500被测试通过,此时,服务器100将服务镜像发送给另一测试终端500继续按照上次的过程进行测试,直到服务镜像在所有的测试终端500均被测试通过。否则,服务镜像未被测试通过,停止对服务镜像的测试。
服务器100还用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端600。
服务器100将服务镜像依次发送给该多个测试终端500进行测试时,每个测试终端500测试通过后,会向服务器100反馈一测试通过的确认信息。如果服务器100收到所有的测试终端500反馈的确认信息,则说明在服务镜像被测试通过,即目标代码持续集成后能够正常的运行。此时,服务器100依据集成参数,将该生产的服务镜像或服务镜像的存储地址发送给部署终端600,以便部署终端600将生成的服务镜像部署在其上,或根据存储地址下载该服务镜像以进行部署。
综上所述,本发明实施例提供的代码持续集成系统能够将获得的目标代码进行编译生成服务镜像后,将该服务镜像依次发给多个测试终端500进行依次检测,以有效保障目标代码的准确。且当其中一个测试终端500未测试通过,则不再向下一个测试终端500发送服务镜像,如此当服务镜像所对应的目标代码在编写过程中编写错误而导致服务镜像无法被其中一个测试终端500测试通过时,无需后续的测试终端500再次对其进行测试,降低测试终端500的资源占用。本发明实施例提供的代码持续集成方法可实现十分方便快捷地对代码进行集成、部署,无需进行复杂的配置,进一步方便团队能够更快地开发内聚的软件。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述方法实施例中的代码持续集成方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种代码持续集成方法,应用于服务器,其特征在于,所述方法包括:
获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
将获得的所述目标代码进行编译,生成服务镜像;
将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
2.根据权利要求1所述的代码持续集成方法,其特征在于,所述将获得的所述目标代码进行编译,生成服务镜像,包括:
将获得的所述目标代码进行编译后压缩,得到压缩格式的所述服务镜像。
3.根据权利要求1所述的代码持续集成方法,其特征在于,所述方法还包括:
获得第三用户终端发送的需求项目信息;
当不存在与所述需求项目信息对应的服务时,创建代码仓库;
其中,所述代码仓库用于存储所述目标代码。
4.根据权利要求1所述的代码持续集成方法,其特征在于,所述测试终端的数量为多个,所述将所述服务镜像发送给测试终端,包括:
将所述服务镜像依次发送给多个所述测试终端;
其中,当将所述服务镜像发送给多个所述测试终端中第一个测试终端以后的测试终端时,需满足所述服务镜像在被发送的所述测试终端的在前一个测试终端已被测试通过。
5.一种代码持续集成装置,应用于服务器,其特征在于,所述代码持续集成装置包括:
第一获取模块,用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
编译模块,用于将获得的所述目标代码进行编译,生成服务镜像;
第一发送模块,用于将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
第二发送模块,用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
6.根据权利要求5所述的代码持续集成装置,其特征在于,所述编译模块用于将获得的所述目标代码进行编译后压缩,得到压缩格式的所述服务镜像。
7.根据权利要求5所述的代码持续集成装置,其特征在于,还包括:
第二获取模块,用于获得第三用户终端发送的需求项目信息;
判断模块,用于判断是否存在与所述需求项目信息对应的服务;
创建模块,用于当不存在与所述需求项目信息对应的服务时,创建代码仓库;
其中,所述代码仓库用于存储所述目标代码。
8.根据权利要求5所述的代码持续集成装置,其特征在于,所述测试终端的数量为多个,所述第一发送模块用于将所述服务镜像依次发送给多个所述测试终端;
其中,当将所述服务镜像发送给多个所述测试终端中第一个测试终端以后的测试终端时,需满足所述服务镜像在被发送的所述测试终端的在前一个测试终端已被测试通过。
9.一种代码持续集成系统,其特征在于,所述代码持续集成系统包括服务器和与所述服务器通信连接的测试终端;
所述服务器用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;将获得的所述目标代码进行编译,生成服务镜像;以及将所述服务镜像发送给测试终端;
所述测试终端用于对所述服务镜像进行测试;
所述服务器还用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
10.根据权利要求9所述的代码持续集成系统,其特征在于,所述测试终端用于调用测试用例对所述服务镜像进行测试;
所述服务器用于当所述调用测试的测试误差率低于预先设定的阈值时,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
11.一种服务器,其特征在于,所述服务器包括:
存储器;
处理器;以及
代码持续集成装置,所述代码持续集成装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模组,所述代码持续集成装置包括:
第一获取模块,用于获得第一用户终端上传的集成参数和第二用户终端上传的目标代码;
编译模块,用于将获得的所述目标代码进行编译,生成服务镜像;
第一发送模块,用于将所述服务镜像发送给测试终端,以便所述测试终端对所述服务镜像进行测试;
第二发送模块,用于当测试通过后,依据所述集成参数将所述服务镜像或所述服务镜像的存储地址发送给对应的部署终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810260482.2A CN108491210B (zh) | 2018-03-27 | 2018-03-27 | 代码持续集成方法、装置、系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810260482.2A CN108491210B (zh) | 2018-03-27 | 2018-03-27 | 代码持续集成方法、装置、系统及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491210A true CN108491210A (zh) | 2018-09-04 |
CN108491210B CN108491210B (zh) | 2019-05-03 |
Family
ID=63316743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810260482.2A Active CN108491210B (zh) | 2018-03-27 | 2018-03-27 | 代码持续集成方法、装置、系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491210B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928552A (zh) * | 2019-11-29 | 2020-03-27 | 联想(北京)有限公司 | 摄像模组的画质调控处理方法及系统 |
CN111159972A (zh) * | 2019-12-31 | 2020-05-15 | 深圳市汇顶科技股份有限公司 | 应用于集成电路的测试方法、测试装置及测试系统 |
CN111443923A (zh) * | 2020-03-26 | 2020-07-24 | 北京房天下嘉居网络技术有限公司 | 服务发布方法及装置 |
CN111666097A (zh) * | 2020-06-01 | 2020-09-15 | 北京思特奇信息技术股份有限公司 | 基于业务场景的能力显性化方法和装置 |
CN114925858A (zh) * | 2022-07-19 | 2022-08-19 | 北京百度网讯科技有限公司 | 基于深度学习框架持续集成系统的任务处理方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN105653449A (zh) * | 2015-12-28 | 2016-06-08 | 湖南蚁坊软件有限公司 | 一种基于容器虚拟化的持续集成方法 |
CN106227657A (zh) * | 2016-07-18 | 2016-12-14 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟化云系统的持续集成方法和装置 |
CN106502758A (zh) * | 2016-10-26 | 2017-03-15 | 安徽扬远信息科技有限公司 | 一种基于Scrum敏捷软件开发持续集成的方法 |
CN106873975A (zh) * | 2016-12-30 | 2017-06-20 | 武汉默联股份有限公司 | 基于Docker的devops持续交付与自动化系统及方法 |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
CN106970818A (zh) * | 2017-03-27 | 2017-07-21 | 深圳市中博睿存信息技术有限公司 | 一种用于Linux平台的软件持续集成方法及装置 |
CN107229482A (zh) * | 2017-08-04 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于软件系统开发的方法及系统 |
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和系统 |
CN107562488A (zh) * | 2017-08-22 | 2018-01-09 | 交控科技股份有限公司 | 基于仿真测试平台的自动化部署装置及部署方法 |
CN107632829A (zh) * | 2017-08-03 | 2018-01-26 | 大唐网络有限公司 | 一种基于iOS系统下的App自动化持续集成系统及方法 |
CN107741908A (zh) * | 2017-10-12 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种基于自动化测试的持续集成方法及装置 |
-
2018
- 2018-03-27 CN CN201810260482.2A patent/CN108491210B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN105653449A (zh) * | 2015-12-28 | 2016-06-08 | 湖南蚁坊软件有限公司 | 一种基于容器虚拟化的持续集成方法 |
CN106227657A (zh) * | 2016-07-18 | 2016-12-14 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟化云系统的持续集成方法和装置 |
CN106502758A (zh) * | 2016-10-26 | 2017-03-15 | 安徽扬远信息科技有限公司 | 一种基于Scrum敏捷软件开发持续集成的方法 |
CN106873975A (zh) * | 2016-12-30 | 2017-06-20 | 武汉默联股份有限公司 | 基于Docker的devops持续交付与自动化系统及方法 |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
CN106970818A (zh) * | 2017-03-27 | 2017-07-21 | 深圳市中博睿存信息技术有限公司 | 一种用于Linux平台的软件持续集成方法及装置 |
CN107632829A (zh) * | 2017-08-03 | 2018-01-26 | 大唐网络有限公司 | 一种基于iOS系统下的App自动化持续集成系统及方法 |
CN107229482A (zh) * | 2017-08-04 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于软件系统开发的方法及系统 |
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和系统 |
CN107562488A (zh) * | 2017-08-22 | 2018-01-09 | 交控科技股份有限公司 | 基于仿真测试平台的自动化部署装置及部署方法 |
CN107741908A (zh) * | 2017-10-12 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种基于自动化测试的持续集成方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928552A (zh) * | 2019-11-29 | 2020-03-27 | 联想(北京)有限公司 | 摄像模组的画质调控处理方法及系统 |
CN111159972A (zh) * | 2019-12-31 | 2020-05-15 | 深圳市汇顶科技股份有限公司 | 应用于集成电路的测试方法、测试装置及测试系统 |
CN111443923A (zh) * | 2020-03-26 | 2020-07-24 | 北京房天下嘉居网络技术有限公司 | 服务发布方法及装置 |
CN111666097A (zh) * | 2020-06-01 | 2020-09-15 | 北京思特奇信息技术股份有限公司 | 基于业务场景的能力显性化方法和装置 |
CN111666097B (zh) * | 2020-06-01 | 2023-03-31 | 北京思特奇信息技术股份有限公司 | 基于业务场景的能力显性化方法和装置 |
CN114925858A (zh) * | 2022-07-19 | 2022-08-19 | 北京百度网讯科技有限公司 | 基于深度学习框架持续集成系统的任务处理方法及装置 |
CN114925858B (zh) * | 2022-07-19 | 2023-09-29 | 北京百度网讯科技有限公司 | 基于深度学习框架持续集成系统的任务处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108491210B (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491210B (zh) | 代码持续集成方法、装置、系统及服务器 | |
US9087041B2 (en) | Enterprise test system platform and associated method for interoperable test data management, test development, test libraries and test workflow management and automation | |
CN109857667A (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN105722081B (zh) | 智能设备联网方法和装置 | |
CN101526916B (zh) | 基于页面对象流验证在回归测试中的应用方法及系统 | |
CN108334449A (zh) | 一种接口自动化测试的方法和装置 | |
CN103518393A (zh) | 检测移动通信设备内容的系统和方法 | |
CN111937006B (zh) | 基于熵值来确定性能的系统 | |
TWI761495B (zh) | 使用自動化測試設備以進行測試之方法及系統、以及相關的非暫時性計算機可讀媒體 | |
CN103365770A (zh) | 移动终端软件测试系统及软件测试方法 | |
CN104123519A (zh) | 一种采用二维码进行电子产品自动检测的系统和方法 | |
CN108845949A (zh) | 一种性能测试方法及平台 | |
CN101710351A (zh) | 用于对多个设备进行仿真的方法和系统 | |
CN107230032B (zh) | 一种电子器件管理大数据分析系统 | |
CN107247637A (zh) | 一种app故障确定方法及装置 | |
CN112269744A (zh) | 系统异常测试方法、装置、计算机设备和存储介质 | |
CN108073506A (zh) | 测试方法和装置 | |
CN106776165A (zh) | 服务器性能测试方法及系统 | |
CN110134381A (zh) | 一种用于报警主机智能生成源代码配置的系统及方法 | |
CN106970870B (zh) | 网页测试平台、网页测试方法和网页测试系统 | |
CN106383765B (zh) | 一种数据监控方法及装置 | |
CN106851708A (zh) | 一种lte基站的多用户测试方法及测试系统 | |
CN116166556A (zh) | 代码分析方法、装置以及系统 | |
CN110209575A (zh) | 测试文档生成方法、装置、电子设备及存储介质 | |
CN110209571A (zh) | 更新接口的测试方法及装置、存储介质、计算机设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee after: Huayun data holding group Co., Ltd Address before: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |