持续交付方法和装置与流程

文档序号:20680811发布日期:2020-05-08 18:22阅读:199来源:国知局
持续交付方法和装置与流程

本申请涉及计算机技术领域,特别涉及一种持续交付方法和装置。



背景技术:

目前,持续集成和持续交付已经成为软件项目管理中的重要环节。其中,持续集成步骤通常在jenkins等工具上执行,并产生相应的交付物(通常是软件的安装包或部署包)。为了对这些交付物实施交付流程,企业通常会使用专门的持续交付平台,以实现对软件产品的部署交付。

jenkins上的持续集成是以job形式实现的,既有单节点job,也有多节点job。其中,单节点job只能在单一指定节点执行构建,而多节点job却可分散在多个节点执行构建。通常,企业级jenkins持续集成环境都是以多节点job方式配置。多节点job完成构建后生成交付物,生成的交付物需要能自动推送至持续交付平台。然而,jenkins平台和持续交付平台是两个相对独立的环境,目前缺乏一种能够将生成的交付物自动推送至持续交付平台的方案。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种持续交付方法和装置,以解决现有技术中缺乏一种能够将生成的交付物自动推送至持续交付平台的方案。

本申请实施例提供了一种持续交付方法,该方法应用于持续集成系统中的主节点服务器,其中,主节点服务器中部署有基于回调机制的持续交付插件,持续集成系统还包括从节点服务器,该方法包括:获取目标安装包信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息;调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包;接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包;在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在一个实施例中,第一回调函数由持续交付插件预先下发并布设于从节点服务器上。

在一个实施例中,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包,包括:对目标安装包信息进行校验;在目标安装包信息校验通过的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

在一个实施例中,在调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包之前,还包括:获取持续交付平台的登录信息;相应的,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包,包括:调用持续交付插件,通过第三调用指令,触发从节点服务器执行第三回调函数,以根据登录信息登录至持续交付平台;接收从节点服务器执行第三回调函数返回的第三数据,并根据第三数据确定从节点服务器是否登录成功;在确定从节点服务器登录成功的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

在一个实施例中,在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台,包括:在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第四调用指令,触发从节点服务器执行第四回调函数以对搜索到的目标安装包进行格式校验;接收从节点服务器执行第四回调函数返回的第四数据,并根据第四数据确定目标安装包是否合法;在确定目标安装包合法的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在一个实施例中,目标安装包信息包括多个目标安装包的信息;相应的,在调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台之后,还包括:接收从节点服务器执行第二回调函数返回的第二数据,并根据第二数据确定目标安装包是否上传完毕;在确定目标安装包上传完毕的情况下,向持续交付平台发送确认请求;接收持续交付平台响应于确认请求返回的持续交付平台接收到的目标安装包的信息;根据持续交付平台接收到的目标安装包的信息确定多个目标安装包是否上传成功;在确定多个目标安装包上传成功的情况下,生成确认信息,并将确认信息发送至持续交付平台,其中,持续交付平台响应于确认信息针对多个目标安装包中的各安装包生成版本号并发布多个目标安装包中各目标安装包。

在一个实施例中,在根据第一数据确定从节点服务器是否搜索到目标安装包之后,还包括:在确定从节点服务器未搜索到目标安装包的情况下,根据第一数据生成错误日志。

在一个实施例中,持续集成系统包括jenkins持续集成系统。

本申请实施例还提供了一种持续交付装置,该装置位于持续集成系统中的主节点服务器,其中,主节点服务器中部署有基于回调机制的持续交付插件,持续集成系统还包括从节点服务器,该装置包括:获取模块,用于获取目标安装包信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息;第一调用模块,用于调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包;接收模块,用于接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包;第二调用模块,用于在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

本申请实施例还提供一种主节点服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的持续交付方法的步骤。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的持续交付方法的步骤。

在本申请实施例中,提供了一种持续交付方法,应用于持续集成系统中的主节点服务器,主节点服务器中部署有基于回调机制的持续交付插件,持续集成系统还包括从节点服务器,主节点服务器获取目标安装包信息,调用持续交付插件,通过第一调用指令触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包,接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包,在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。上述方案中,主节点服务器可以获取目标安装包信息,通过配置目标安装包信息,可以使得上述方法可以应用于不同的持续集成任务,还可以使得上述方法可以根据不同开发阶段指定不同的目标安装包,功能丰富,兼容性好。此外,主节点服务器通过调用部署在其中的基于回调机制的持续交付插件,可以触发从节点服务器执行第一回调函数以根据目标安装包信息在从节点服务器中搜索目标安装包,并且可以根据从节点服务器执行第一回调函数返回的第一数据确定从节点服务器是否搜索到目标安装包,实现了在多节点运行的任务中搜索从节点服务器构建的安装包并将搜索到的安装包自动上传至持续交付平台,从而可以将持续集成系统和持续交付平台连接起来,提高持续交付效率,实现真正意义上的交付流水线。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:

图1示出了本申请一实施例中持续交付方法的应用场景的示意图;

图2示出了本申请一实施例中的持续交付方法的流程图;

图3示出了本申请一实施例中的持续交付插件中的回调机制的示意图;

图4示出了本申请一实施例中的持续交付装置的示意图;

图5示出了本申请一实施例中的主节点服务器的示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

本申请实施例提供了一种持续交付方法,该方法应用于持续集成系统中的主节点服务器,其中,主节点服务器中部署有基于回调机制的持续交付插件,持续集成系统还包括从节点服务器。图1示出了本申请一实施例中持续交付方法的应用场景的示意图。如图1所示,持续集成系统可以包括主节点服务器和从节点服务器。示意而非限制性地,图1中示出了一个主节点服务器和3个从节点服务器(从节点服务器1、从节点服务器2和从节点服务器3)。其中,主节点服务器和从节点服务器是相对于某一个多节点持续集成任务(例如,多节点job)而言的。对于一个多节点job,一般可以对应于一个主节点服务器和一个或多个从节点服务器。多节点job可以用于构建一个或多个安装包,其中,该一个或多个安装包可以用于实现相同或相似的功能,只是配置不同。例如,该一个或多个安装包可以对应于不同的环境,一个安装包可以用于测试,另一个安装包可用于生产。又例如,该一个或多个安装包可以包括不同版本的安装包。

主节点服务器中可以部署有基于回调机制的持续交付插件,该持续交付插件可以添加至主节点服务器中的目标持续集成任务中。目标持续集成任务可以用于构建一个或多个目标安装包,持续交付插件可以用于自动将一个或多个目标安装包上传至持续交付平台。具体地,主节点服务器可以根据目标持续集成任务调配一个或多个从节点服务器构建一个或多个安装包,还可以根据持续交付插件将从节点服务器构建的一个或多个安装包上传至持续交付平台。

如图1所示,主节点服务器可以调用持续交付插件,通过调用指令触发从节点服务器执行回调函数,从节点服务器执行回调函数后可以返回执行结果至主节点服务器。其中,主节点服务器可以根据接收到的返回结果确定是否执行下一个步骤。其中,从节点服务器执行回调函数可以实现搜索、登录和上传等功能。其中,搜索功能是指从节点服务器在从节点服务器中搜索目标安装包文件。登录功能是指从节点服务器登录至持续交付平台。上传功能是指从节点服务器将构建的安装包上传至持续交付平台。例如,主节点服务器可以获取目标安装包信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息。主节点服务器可以调用持续交付插件,通过第一调用指令,触发从节点服务器1、从节点服务器2和从节点服务器3执行第一回调函数,以分别根据目标安装包信息在从节点服务器1、从节点服务器2和从节点服务器3中搜索目标安装包。从节点服务器1、从节点服务器2和从节点服务器3分别向主节点服务器发送其执行第一回调函数返回的第一数据。主节点服务器可以根据接收到的第一数据确定是否所有目标安装包都被搜索到。在确定所有目标安装包都被搜索到的情况下,主节点服务器调用持续交付插件,通过第二调用指令,触发从节点服务器1、从节点服务器2和从节点服务器3执行第二回调函数,以分别将搜索到的目标安装包上传至持续交付平台。

图2示出了本申请一实施例中持续交付方法的流程图,该方法应用于持续集成系统中的主节点服务器,其中,主节点服务器中部署有基于回调机制的持续交付插件,持续集成系统还包括从节点服务器。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。

具体地,如图2所示,本申请一种实施例提供的持续交付方法可以包括以下步骤:

步骤s201,获取目标安装包信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息。

主节点服务器可以获取目标安装包信息。目标安装包信息可以是由开发人员在前端页面输入的一个或多个目标安装包的信息。目标安装包信息也可以包括在预设配置文件中。通过配置目标安装包信息,可以使得本实施例中的方法可以应用于不同的持续集成任务,还可以使得本实施例中的方法可以根据不同开发阶段指定不同的目标安装包,功能丰富,兼容性好。其中,目标安装包信息可以包括目标安装包的名称。目标安装包信息可以包括目标任务中构建得到的目标安装包的信息。其中,目标任务可以包括目标集成任务。

步骤s202,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

具体地,主节点服务器可以调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数。从节点服务器执行第一回调函数时,可以根据目标安装包信息在从节点服务器中搜索目标安装包,并向主节点服务器返回执行第一回调函数得到的第一数据。

步骤s203,接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包。

主节点服务器可以接收从节点服务器通过执行第一回调函数返回的第一数据。主节点服务器还可以根据第一数据确定从节点服务器是否搜索到目标安装包。例如,第一数据可以是从节点服务器搜索到的目标安装包的名称,主节点服务器可以根据第一数据和目标安装包信息确定从节点服务器是否搜索到目标安装包。

步骤s204,在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在确定从节点服务器搜索到目标安装包的情况下,主节点服务器可以调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数。其中,从节点执行第二回调函数时,可以将搜索到的目标安装包上传至持续交付平台。

上述实施例中的持续交付方法中,主节点服务器可以获取目标安装包信息,通过配置目标安装包信息,可以使得上述方法可以应用于不同的持续集成任务,还可以使得上述方法可以根据不同开发阶段指定不同的目标安装包,功能丰富,兼容性好。此外,主节点服务器通过调用部署在其中的基于回调机制的持续交付插件,可以触发从节点服务器执行第一回调函数以根据目标安装包信息在从节点服务器中搜索目标安装包,并且可以根据从节点服务器执行第一回调函数返回的第一数据确定从节点服务器是否搜索到目标安装包,实现了在多节点运行的任务中搜索从节点服务器构建的安装包并将搜索到的安装包自动上传至持续交付平台,从而可以将持续集成系统和持续交付平台连接起来,提高持续交付效率,实现真正意义上的交付流水线。

在本申请一些实施例中,第一回调函数可以由持续交付插件预先下发并布设于从节点服务器上。具体地,在目标任务执行时,主节点服务器会将持续交付插件中的第一回调函数下发至从节点服务器上。这样,在从节点服务器接收到第一调用指令时,可以执行第一回调函数。在本申请的一些实施例中,第二回调函数也可以由持续交付插件预先下发并布设于从节点服务器中。通过上述方式,可以使得主服务器通过回调机制触发从节点服务器执行回调函数,从而实现持续交付方法。

在本申请一些实施例中,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包,可以包括:对目标安装包信息进行校验;在目标安装包信息校验通过的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

在主节点服务器获取到目标安装包信息之后,可以对目标安装包信息进行校验。例如,可以校验目标安装包信息中的文件扩展名是否满足预设条件。例如,对于安卓项目,确定目标安装包信息中的扩展名是否为apk;对于ios项目,确定目标安装包信息中的扩展名是否为ipa。在目标安装包信息校验通过的情况下,调用持续交付插件,通过第一调用指令触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。例如,对于由开发人员在前端页面输入目标安装包信息的情况,在校验不通过的情况下可以生成提示信息以提示开发人员及时更正。上述方法,在从节点服务器搜索目标安装包之前,先对目标安装包信息进行校验,可以避免目标安装包信息错误导致搜索到错误文件或者搜索不到安装包的情况,可以提高搜索效率和准确率,从而提高持续交付效率和准确率。

在本申请一些实施例中,在调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包之前,还可以包括:获取持续交付平台的登录信息;相应的,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包,包括:调用持续交付插件,通过第三调用指令,触发从节点服务器执行第三回调函数,以根据登录信息登录至持续交付平台;接收从节点服务器执行第三回调函数返回的第三数据,并根据第三数据确定从节点服务器是否登录成功;在确定从节点服务器登录成功的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

具体地,主节点服务器可以获取持续交付平台的登录信息。其中,登录信息可以包括后台地址、用户名和密码等信息。在获取持续交付平台的登录信息之后,主节点服务器可以调用持续交付插件,通过第三调用指令,触发从节点服务器执行第三回调函数。从节点服务器在执行第三回调函数时,可以根据登录信息登录至持续交付平台。从节点服务器还可以向主节点服务器返回执行第三回调函数生成的第三数据。主节点服务器可以根据第三数据确定从节点服务器是否登录成功。在确定从节点登录成功的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。上述方案中,在成功登录持续交付平台之后才执行后续的搜索和上传等步骤,而且可以通过配置登录信息,使得从节点服务器可以将安装包上传至不同的持续交付平台。上述实施例中,在从节点服务器搜索目标安装包之前登录至持续交付平台,在其他实施例中,也可以在从节点搜索目标安装包之后在上传目标安装包之前登录至持续交付平台,本申请对此不做限制。

在本申请一些实施例中,在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台,可以包括:在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第四调用指令,触发从节点服务器执行第四回调函数以对搜索到的目标安装包进行格式校验;接收从节点服务器执行第四回调函数返回的第四数据,并根据第四数据确定目标安装包是否合法;在确定目标安装包合法的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在确定从节点服务器搜索到目标安装包的情况下,可以调用持续交付插件,通过第四调用指令,触发从节点服务器执行第四回调函数。从节点服务器在执行第四回调函数时,可以对搜索到的目标安装包进行格式校验。具体地,可以对目标安装包的格式进行验证,例如,如果是apk安装包,则验证该安装包的内容或格式是否符合apk安装包的要求。从节点服务器可以向主节点服务器返回执行第四回调函数生成的第四数据。主节点服务器可以根据接收到的第四数据确定目标安装包是否合法。在确定目标安装包合法的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。上述方案中,在上传目标安装包之前,先对目标安装包进行格式校验,可以将上传安装包的风险降到最低,只有通过校验确认为合法的安装包才可以被上传至持续交付平台。

在本申请一些实施例中,目标安装包信息包括多个目标安装包的信息;相应的,在调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台之后,还包括:接收从节点服务器执行第二回调函数返回的第二数据,并根据第二数据确定目标安装包是否上传完毕;在确定目标安装包上传完毕的情况下,向持续交付平台发送确认请求;接收持续交付平台响应于确认请求返回的持续交付平台接收到的目标安装包的信息;根据持续交付平台接收到的目标安装包的信息确定多个目标安装包是否上传成功;在确定多个目标安装包上传成功的情况下,生成确认信息,并将确认信息发送至持续交付平台,其中,持续交付平台响应于确认信息针对多个目标安装包中的各安装包生成版本号并发布多个目标安装包中各目标安装包。

目标安装包信息可以包括多个目标安装包的信息。在主节点服务器调用持续交付插件,通过第二调用指令触发从节点服务器执行第二回调函数以将安装包上传至持续交付平台之后,主节点服务器可以确认安装包是否上传成功。具体地,主节点服务器接收从节点服务器执行第二回调函数返回的第二数据,并根据第二数据确定目标安装包是否上传完毕。在确定目标安装包上传完毕的情况下,向持续交付平台发送确认请求。持续交付平台可以响应于接收到的确认请求向主节点服务器返回持续交付平台接收到的目标安装包的信息。主节点服务器可以根据持续交付平台接收到的目标安装包的信息确定多个目标安装包是否上传成功。持续交付平台接收到的目标安装包的信息可以包括接收到的目标安装包的名称和数目。例如,如果持续交付平台接收到的目标安装包的数目与目标安装包信息中的安装包的数目相同,则确定上传成功。在确定多个目标安装包上传成功的情况下,主节点服务器生成确认信息,并将确认信息发送至持续交付平台。持续交付平台响应于接收到的确认信息,针对多个安装包中的各安装包生成版本号并发布多个目标安装包中各目标安装包。在一些实施例中,如果确定多个目标安装包中的一个或多个安装包未上传成功,则进行回退,并使已经上传成功的安装包失效。上述方案中,在持续交付平台发布安装包之前,先验证是否目标任务中构建的所有目标安装包均上传成功,可以保证上传安装包的一致性。

在本申请一些实施例中,上述方法还可以包括:主节点服务器将目标任务信息发送至持续交付平台。其中,目标任务信息可以包括但不限于以下至少之一:任务标识、任务编号、执行时间、执行日志和执行路径等。上述方案中,通过将目标任务信息发送至持续交付平台,可以便于持续交付平台后续进行查看。

在本申请一些实施例中,在根据第一数据确定从节点服务器是否搜索到目标安装包之后,还包括:在确定从节点服务器未搜索到目标安装包的情况下,根据第一数据生成错误日志。具体地,在确定从节点服务器未搜索到目标安装包的情况下,主节点服务器可以根据第一数据生成错误日志。例如,错误日志可以记载有未搜索到的目标安装包的信息以及对应的从节点服务器的信息。

在本申请的一些实施例中,在根据第三数据确定从节点服务器未登录成功的情况下,主节点服务器可以根据第三数据生成错误日志。例如,错误日志中可以记载有登录失败的原因以及登录失败的从节点服务器的信息。

在本申请的一些实施例中,在根据第四数据确定目标安装包不合法的情况下,主节点服务器可以根据第四数据生成错误日志。例如,错误日志中可以记载有不合法的目标安装包的信息和对应的从节点服务器的信息。

上述实施例中,在生成错误日志之后,主节点服务器可以将生成的错误日志返回至前端,以供开发人员根据错误日志进行调试。通过生成错误日志,可以使得开发人员便于发现参数配置以及代码编写和开发中的问题。

在本申请一些实施例中,持续集成系统包括jenkins持续集成系统。

其中,jenkins平台是一个开源软件项目,随着越来越多企业的使用,它已经发展成为业界的既定标准,几乎所有的大型it公司都在使用该平台做软件的持续集成。jenkins持续集成系统的功能丰富且开放灵活,用户可以很方便地根据自身需求进行扩展。jenkins插件开发技术就是以jenkins持续集成系统为基础架构,对其功能进行扩展的主要方法。

具体地,在jenkins持续集成系统中,持续交付插件的核心filepath(文件路径)的回调函数。其中filepath类用于表示jenkins工作空间中的文件路径,在job构建的过程中jenkins系统的主节点服务器会创建一个该类的对象,表示了该job执行所在的工作空间根目录。为了使该插件能够在jenkins系统的从节点服务器顺利地处理安装包文件,就必须创建一个类去实现filepath.filecallable<?>接口并且重载插件中的回调函数。并且,要确保这个filepath类是可以序列化的,以将要进行安装包处理的代码逻辑放入回调函数中。通过job执行过程中的filepath类调用其filepath.act方法,从主节点触发filepath.act方法,这样就可以在jenkins从节点服务器中主动调用它的回调函数并执行。

请参考图3,图3示出了filepath回调机制的示意图。如图3所示,filepath类部署于jenkins主节点服务器中,invoke回调函数分布在各jenkins从节点服务器中。当主节点服务器执行filepath.act方法时,会触发各个执行安装包构建的从节点服务器执行invoke回调函数。待invoke回调函数执行完成后,各jenkins从节点服务器会返回结果到主节点服务器的filepath类中。这样,就形成了一个执行的闭环回路。invoke回调函数可以包括多个回调函数,以执行右侧流程图中所示的多个步骤。首先登录到持续交付平台,然后在jenkins从节点中搜索安装包,接着找到安装包后进行格式校验,安装包校验成功后向持续交付平台上传安装包。

上述方案可以通过参数配置,上传多节点job在不同从节点服务器中构建的多个安装包,并可根据不同开发阶段指定不同的构建产出物。上述方案,还可参数化配置与插件对接的持续交付平台后台地址和登录认证信息,进而将安装包和多节点job相关构建信息上传至持续交付平台。通过上述方法,可以将jenkins持续集成系统中构建的安装包自动上传至持续交付平台,在jenkins从节点服务器中执行持续交付插件的代码,从而将持续集成和持续交付两个环节连接起来,实现真正意义上的交付流水线。

下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

在本具体实施例中,持续交付方法可以包括以下步骤:

步骤1,主节点服务器获取目标安装包信息和持续交付平台的登录信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息。

步骤2,主节点服务器对目标安装包信息进行校验,在目标安装包信息校验通过的情况下,主节点服务器调用持续交付插件,通过第三调用指令,触发从节点服务器执行第三回调函数。

步骤3,从节点服务器执行第三回调函数时,根据登录信息登录至持续交付平台,并向主节点服务器返回其执行第三回调函数生成的第三数据。

步骤4,主节点服务器接收从节点服务器执行第三回调函数返回的第三数据,并根据第三数据确定从节点服务器是否登录成功。

步骤5,在确定从节点服务器登录成功的情况下,主节点服务器调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数。

步骤6,从节点服务器执行第一回调函数时,根据目标安装包信息在从节点服务器中搜索目标安装包,并向主节点服务器返回其执行第一回调函数生成的第一数据。

步骤7,主节点服务器接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包。

步骤8,在确定从节点服务器搜索到目标安装包的情况下,主节点服务器调用持续交付插件,通过第四调用指令,触发从节点服务器执行第四回调函数。

步骤9,从节点服务器执行第四回调函数时,对搜索到的目标安装包进行格式校验,并向主节点服务器返回其执行第四回调函数生成的第四数据。

步骤10,主节点服务器接收从节点服务器执行第四回调函数返回的第四数据,并根据第四数据确定目标安装包是否合法。

步骤11,在确定目标安装包合法的情况下,主节点服务器调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数。

步骤12,从节点服务器执行第二回调函数时,将目标安装包上传至持续交付平台,并向主节点服务器返回其执行第二回调函数生成的第二数据。

步骤13,主节点服务器接收从节点服务器执行第二回调函数返回的第二数据,并根据第二数据确定目标安装包是否上传完毕。

步骤14,在确定目标安装包上传完毕的情况下,主节点服务器向持续交付平台发送确认请求。

步骤15,持续交付平台响应于确认请求向主节点服务器返回持续交付平台接收到的目标安装包的信息。

步骤16,主节点服务器根据持续交付平台接收到的目标安装包的信息确定多个目标安装包是否上传成功。

步骤17,在确定多个目标安装包上传成功的情况下,主节点服务器生成确认信息,并将确认信息发送至持续交付平台。

步骤18,持续交付平台响应于确认信息针对多个目标安装包中的各安装包生成版本号并发布多个目标安装包中各目标安装包。

上述方案中,主节点服务器可以获取目标安装包信息,通过配置目标安装包信息,可以使得上述方法可以应用于不同的持续集成任务,还可以使得上述方法可以根据不同开发阶段指定不同的目标安装包,功能丰富,兼容性好。主节点服务器还可以获取持续交付平台的登录信息,通过配置登录信息,可以将目标任务生成的安装包上传至不同的持续交付平台上。此外,主节点服务器通过调用部署在其中的基于回调机制的持续交付插件,可以触发从节点服务器执行第一回调函数以根据目标安装包信息在从节点服务器中搜索目标安装包,并且可以根据从节点服务器执行第一回调函数返回的第一数据确定从节点服务器是否搜索到目标安装包,实现了在多节点运行的任务中搜索从节点服务器构建的安装包并将搜索到的安装包自动上传至持续交付平台。此外,上述方案还可以对安装包进行前端和后端校验,保证安装包的合法性。上述方案可以将持续集成系统和持续交付平台连接起来,提高持续交付效率,实现真正意义上的交付流水线。

基于同一发明构思,本申请实施例中还提供了一种持续交付装置,如下面的实施例所述。由于持续交付装置解决问题的原理与持续交付方法相似,因此持续交付装置的实施可以参见持续交付方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的持续交付装置的一种结构框图,如图4所示,包括:获取模块401、第一调用模块402、接收模块403和第二调用模块404,下面对该结构进行说明。

获取模块401用于获取目标安装包信息,其中,目标安装包信息包括目标任务中构建得到的目标安装包的信息。

第一调用模块402用于调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

接收模块403用于接收从节点服务器通过执行第一回调函数返回的第一数据,并根据第一数据确定从节点服务器是否搜索到目标安装包。

第二调用模块404用于在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在本申请一些实施例中,第一回调函数可以由持续交付插件预先下发并布设于从节点服务器上。

在本申请一些实施例中,第一调用模块可以具体用于:对目标安装包信息进行校验;在目标安装包信息校验通过的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

在本申请一些实施例中,获取模块还可以用于获取持续交付平台的登录信息。相应的,第一调用模块可以具体用于:调用持续交付插件,通过第三调用指令,触发从节点服务器执行第三回调函数,以根据登录信息登录至持续交付平台;接收从节点服务器执行第三回调函数返回的第三数据,并根据第三数据确定从节点服务器是否登录成功;在确定从节点服务器登录成功的情况下,调用持续交付插件,通过第一调用指令,触发从节点服务器执行第一回调函数,以根据目标安装包信息在从节点服务器中搜索目标安装包。

在本申请一些实施例中,第二调用模块可以具体用于:在确定从节点服务器搜索到目标安装包的情况下,调用持续交付插件,通过第四调用指令,触发从节点服务器执行第四回调函数以对搜索到的目标安装包进行格式校验;接收从节点服务器执行第四回调函数返回的第四数据,并根据第四数据确定目标安装包是否合法;在确定目标安装包合法的情况下,调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台。

在本申请一些实施例中,目标安装包信息包括多个目标安装包的信息;相应的,该装置还可以包括确认模块。确认模块可以具体用于:在调用持续交付插件,通过第二调用指令,触发从节点服务器执行第二回调函数,以将目标安装包上传至持续交付平台之后,接收从节点服务器执行第二回调函数返回的第二数据,并根据第二数据确定目标安装包是否上传完毕;在确定目标安装包上传完毕的情况下,向持续交付平台发送确认请求;接收持续交付平台响应于确认请求返回的持续交付平台接收到的目标安装包的信息;根据持续交付平台接收到的目标安装包的信息确定多个目标安装包是否上传成功;在确定多个目标安装包上传成功的情况下,生成确认信息,并将确认信息发送至持续交付平台,其中,持续交付平台响应于确认信息针对多个目标安装包中的各安装包生成版本号并发布多个目标安装包中各目标安装包。

在本申请一些实施例中,该装置还可以包括生成模块,生成模块可以具体用于:在根据第一数据确定从节点服务器是否搜索到目标安装包之后,在确定从节点服务器未搜索到目标安装包的情况下,根据第一数据生成错误日志。

在本申请一些实施例中,持续集成系统包括jenkins持续集成系统。

从以上的描述中,可以看出,本申请实施例实现了如下技术效果:主节点服务器可以获取目标安装包信息,通过配置目标安装包信息,可以使得上述方法可以应用于不同的持续集成任务,还可以使得上述方法可以根据不同开发阶段指定不同的目标安装包,功能丰富,兼容性好。此外,主节点服务器通过调用部署在其中的基于回调机制的持续交付插件,可以触发从节点服务器执行第一回调函数以根据目标安装包信息在从节点服务器中搜索目标安装包,并且可以根据从节点服务器执行第一回调函数返回的第一数据确定从节点服务器是否搜索到目标安装包,实现了在多节点运行的任务中搜索从节点服务器构建的安装包并将搜索到的安装包自动上传至持续交付平台,从而可以将持续集成系统和持续交付平台连接起来,提高持续交付效率,实现真正意义上的交付流水线。

本申请实施方式还提供了一种主节点服务器,具体可以参阅图5所示的基于本申请实施例提供的持续交付方法的主节点服务器组成结构示意图,所述主节点服务器具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的持续交付方法的步骤。

在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。

在本实施方式中,该主节点服务器具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

本申请实施方式中还提供了一种基于持续交付方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述持续交付方法的步骤。

在本实施方式中,上述存储介质包括但不限于随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、缓存(cache)、硬盘(harddiskdrive,hdd)或者存储卡(memorycard)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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