基于轻量化脚本的插件构建方法、系统、设备及介质与流程

文档序号:16207292发布日期:2018-12-08 07:16阅读:146来源:国知局
基于轻量化脚本的插件构建方法、系统、设备及介质与流程

本发明涉及计算机技术领域,具体而言,涉及基于轻量化脚本的插件构建方法、系统、设备及介质。

背景技术

目前现有的很多构建系统比如开源的jenkins,云厂商提供的阿里云(codepipeline),华为软件开发云(构建和流水线),在实践多类型工程和大规模构建的时候存在配置管理繁琐、易出错等问题。主要表现在以下几个方面:

1.重复的逻辑代码分散存储在多个每个项目,不利于构建代码修复和更新;

2.构建环境不能定制,对老项目不友好;

3.构建任务不能自动化或者模板化,全手工配置构建任务易出错。



技术实现要素:

本发明实施例提供的基于轻量化脚本的插件构建方法、系统、设备及介质,可以克服上述技术问题。

第一方面,本发明实施例提供的一种基于轻量化脚本的插件构建方法,包括:完成基础镜像的制作;根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像;将所述目标镜像导出成预设格式的压缩包,并进行统一归档;在构建启动时,下载所述压缩包至本地物理机并生成镜像文件;运行所述镜像文件,并执行预设构建逻辑。

结合第一方面,第一方面的一种实施方式,所述的执行预设构建逻辑,包括:将构建逻辑代码按照预设结构打包,并开放入口文件;获取构建描述文件;根据所述构建描述文件确定本次的构建逻辑及需要的插件信息;从所述插件信息中确定目标插件;从插件归档库中下载所述目标插件到本地,将配置参数注入给所述目标插件所对应的入口文件;执行所述入口文件,以完成构建步骤。

结合第一方面,在第一方面的另一种实施方式,所述的在运行所述镜像文件,并执行预设构建逻辑之后,还包括:生成构建报告。

结合第一方面,在第一方面的另一种实施方式,所述的生成构建报告,包括:获取所述目标插件执行后所产生的第一执行文件和第二执行文件;基于所述第一执行文件和所述第二执行文生成所述构建报告。

结合第一方面,在第一方面的另一种实施方式,所述的基于所述第一执行文件和所述第二执行文生成所述构建报告,包括:基于所述第一执行文件和所述第二执行文件生成html数据;将所述html数据作为所述构建报告。

第二方面,本发明实施例提供的一种基于轻量化脚本的插件构建系统,包括:第一处理单元,用于完成基础镜像的制作;第二处理单元,用于根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像;第三处理单元,用于将所述目标镜像导出成预设格式的压缩包,并进行统一归档;第四处理单元,用于在构建启动时,下载所述压缩包至本地物理机并生成镜像文件;运行单元,用于运行所述镜像文件,并执行预设构建逻辑。

结合第一方面,第一方面的一种实施方式,所述运行单元,还用于:将构建逻辑代码按照预设结构打包,并开放入口文件;获取构建描述文件;根据所述构建描述文件确定本次的构建逻辑及需要的插件信息;从所述插件信息中确定目标插件;从插件归档库中下载所述目标插件到本地,将配置参数注入给所述目标插件所对应的入口文件;执行所述入口文件,以完成构建步骤。

结合第一方面,在第一方面的另一种实施方式,在所述运行单元之后,还包括:报告生成单元,用于生成构建报告。

第五方面,本发明实施例提供的一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述方法的步骤。

第六方面,本发明实施例提供的一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。

与现有技术相比,本发明实施例提供的基于轻量化脚本的插件构建方法、系统、设备及介质有益效果是:通过完成基础镜像的制作;根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像;将所述目标镜像导出成预设格式的压缩包,并进行统一归档;在构建启动时,下载所述压缩包至本地物理机并生成镜像文件;运行所述镜像文件,并执行预设构建逻辑。从而使得开发人员在实践自动化构建的过程中不需要在重复编写构建逻辑脚本,只需要将关键的信息进行配置,以及插件开发能力要求门槛低,可以完成任意平台和工具的整合,并且通过容器(操作系统或镜像文件)实现了构建环境代码化和定制。从而有效克服了现有技术中存在的重复的逻辑代码分散存储在多个每个项目,不利于构建代码修复和更新;以及构建环境不能定制,对老项目不友好,以及构建任务不能自动化或者模板化,全手工配置构建任务易出错等技术问题。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明第一实施例提供的基于轻量化脚本的插件构建方法的流程图;

图2为本发明第二实施例提供的基于轻量化脚本的插件构建系统的功能模块示意图;

图3为本发明第五实施例提供的一种终端设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

第一实施例

请参阅图1,是本发明实施例提供的基于轻量化脚本的插件构建方法的流程图。下面将对图1所示的具体流程进行详细阐述。

步骤s101,完成基础镜像的制作。

作为一种实施方式,将构建必须使用的系统及系统环境配置安装到指定构建操作系统中,完成操作系统的制定,即完成所述基础镜像的制作。

步骤s102,根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像。

其中,脚本文件为预先配置好的,在启动或运行所述基础镜像时,执行该脚本文件,完成软件的安装。即给所述基础镜像安装构建环境所需依赖。

其中,所述目标镜像为操作系统。

步骤s103,将所述目标镜像导出成预设格式的压缩包,并进行统一归档。

可选地,所述预设格式可以是tar包。

步骤s104,在构建启动时,下载所述压缩包至本地物理机并生成镜像文件。

通常的,是将tar包下载至本地物理机进行解压后的文件作为镜像文件。

可选地,通过远程调用一次构建任务,从而去启动构建的功能。

步骤s105,运行所述镜像文件,并执行预设构建逻辑。

其中,所述构建逻辑包括:将构建逻辑代码按照预设结构打包,并开放入口文件;获取构建描述文件;根据所述构建描述文件确定本次的构建逻辑及需要的插件信息;从所述插件信息中确定目标插件;从插件归档库中下载所述目标插件到本地,将配置参数注入给所述目标插件所对应的入口文件;执行所述入口文件,以完成构建步骤。

举例来说,假设入口文件为run.xml,构建描述文件为ci.yml,目标插件为plugina时,通过对ci.yml进行分析可以知道本次构建的逻辑及每一步需要的插件信息。即ci.yml中配置有本次构建的逻辑及每一步需要的插件信息,其中,ci.yml连同需要构建的代码放在同一个git仓库。当需要使用plugina时,通过插件归档库中下载到本地,将配置参数注入给插件(plugina)的run.xml文件,执行插件(plugina)的run.xml文件完成此构建步骤。

在一可能的实施例中,在步骤s105之后,还包括:生成构建报告。

可选地,所述的生成构建报告,包括:获取所述目标插件执行后所产生的第一执行文件和第二执行文件;基于所述第一执行文件和所述第二执行文生成所述构建报告。

可选地,所述的基于所述第一执行文件和所述第二执行文生成所述构建报告,包括:基于所述第一执行文件和所述第二执行文件生成html数据;将所述html数据作为所述构建报告。

继续以前述例子为例来说,通过分析插件(plugina)在当前工作目录(workdir)产生的.reports/plugina/summary.xml文件(即第一执行文件),将reports/plugina/summary.xml文件(第一执行文件)和插件(plugina)本身目录下的report.xsl(即第二执行文件)结合产生html数据,将html内容的数据放置于展示报告的地方。

本发明实施例提供的基于轻量化脚本的插件构建方法,通过完成基础镜像的制作;根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像;将所述目标镜像导出成预设格式的压缩包,并进行统一归档;在构建启动时,下载所述压缩包至本地物理机并生成镜像文件;运行所述镜像文件,并执行预设构建逻辑。从而使得开发人员在实践自动化构建的过程中不需要在重复编写构建逻辑脚本,只需要将关键的信息进行配置,以及插件开发能力要求门槛低,可以完成任意平台和工具的整合,并且通过容器(操作系统或镜像文件)实现了构建环境代码化和定制。从而有效克服了现有技术中存在的重复的逻辑代码分散存储在多个每个项目,不利于构建代码修复和更新;以及构建环境不能定制,对老项目不友好,以及构建任务不能自动化或者模板化,全手工配置构建任务易出错等技术问题。进而通过采用统一归档和版本控制构建逻辑代码,通过解析产品代码库中的特点构建配置文件,下载对应插件并组装执行命令实现构建,通过对构建过程中产生的结构化日志进行统一分析展示,实现构建过程关键信息报告展示。以及通过容器实现构建环境代码化和定制化,方便管理和更新构建所需环境。

第二实施例

对应于第一实施例中的基于轻量化脚本的插件构建方法,图2示出了采用第一实施例所示的基于轻量化脚本的插件构建方法一一对应的基于轻量化脚本的插件构建系统。如图2所示,所述基于轻量化脚本的插件构建系统400包括第一处理单元410、第二处理单元420、第三处理单元430、第四处理单元440和运行单元450。其中,获第一处理单元410、第二处理单元420、第三处理单元430、第四处理单元440和运行单元450的实现功能与第一实施例中对应的步聚一一对应,为避免赘述,本实施例不一一详述。

第一处理单元410,用于完成基础镜像的制作。

第二处理单元420,用于根据预先安装的脚本文件在所述基础镜像上完成安装构建环境所需依赖,生成目标镜像。

第三处理单元430,用于将所述目标镜像导出成预设格式的压缩包,并进行统一归档。

第四处理单元440,用于在构建启动时,下载所述压缩包至本地物理机并生成镜像文件。

运行单元450,用于运行所述镜像文件,并执行预设构建逻辑。

可选地,所述运行单元450,还用于:将构建逻辑代码按照预设结构打包,并开放入口文件;获取构建描述文件;根据所述构建描述文件确定本次的构建逻辑及需要的插件信息;从所述插件信息中确定目标插件;从插件归档库中下载所述目标插件到本地,将配置参数注入给所述目标插件所对应的入口文件;执行所述入口文件,以完成构建步骤。

在一可能的实施例中,在所述运行单元450之后,基于轻量化脚本的插件构建系统400还包括:报告生成单元,用于生成构建报告。

可选地,报告生成单元还用于获取所述目标插件执行后所产生的第一执行文件和第二执行文件;基于所述第一执行文件和所述第二执行文生成所述构建报告。

可选地,所述的基于所述第一执行文件和所述第二执行文生成所述构建报告,包括:基于所述第一执行文件和所述第二执行文件生成html数据;将所述html数据作为所述构建报告。

第三实施例

如图3所示,是终端设备300的示意图。所述终端设备300包括存储器302、处理器304以及存储在所述存储器302中并可在所述处理器304上运行的计算机程序303,所述计算机程序303被处理器304执行时实现第一实施例中的所述基于轻量化脚本的插件构建方法,为避免重复,此处不再赘述。或者,所述计算机程序303被处理器304执行时实现第二实施例所述基于轻量化脚本的插件构建系统中各模型/单元的功能,为避免重复,此处不再赘述。

示例性的,计算机程序303可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器302中,并由处理器304执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在终端设备300中的执行过程。例如,计算机程序303可以被分割成第二实施例中的第一处理单元410、第二处理单元420、第三处理单元430、第四处理单元440和运行单元450,各模块的具体功能如第一实施例或第二实施例所述,在此不一一赘述。

终端设备300可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。

其中,存储器302可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器302用于存储程序,所述处理器304在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的方法可以应用于处理器304中,或者由处理器304实现。

处理器304可能是一种集成电路芯片,具有信号的处理能力。上述的处理器304可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

可以理解的是,图3所示的结构仅为终端设备300的一种结构示意图,终端设备300还可以包括比图3所示更多或更少的组件。图3中所示的各组件可以采用硬件、软件或其组合实现。

第四实施例

本发明实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现第一实施例中的所述基于轻量化脚本的插件构建方法,为避免重复,此处不再赘述。或者,所述计算机程序被处理器执行时实现第二实施例所述基于轻量化脚本的插件构建系统中各模型/单元的功能,为避免重复,此处不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景的方法。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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