CN114047934A - 基于Jenkins的代码部署方法、装置、设备及介质 - Google Patents

基于Jenkins的代码部署方法、装置、设备及介质 Download PDF

Info

Publication number
CN114047934A
CN114047934A CN202111271460.4A CN202111271460A CN114047934A CN 114047934 A CN114047934 A CN 114047934A CN 202111271460 A CN202111271460 A CN 202111271460A CN 114047934 A CN114047934 A CN 114047934A
Authority
CN
China
Prior art keywords
jenkins
code
target
deployed
script
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
Application number
CN202111271460.4A
Other languages
English (en)
Inventor
张高利
何栋栋
白泽钊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Pension Insurance Corp
Original Assignee
Ping An Pension Insurance Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Pension Insurance Corp filed Critical Ping An Pension Insurance Corp
Priority to CN202111271460.4A priority Critical patent/CN114047934A/zh
Publication of CN114047934A publication Critical patent/CN114047934A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Abstract

本申请涉及人工智能,提供一种基于Jenkins的代码部署方法、装置、设备及介质。方法包括:获取待部署代码;然后根据该待部署代码的项目类型确定目标Jenkins脚本组件以及目标配置参数;再将目标配置参数填充至对应的目标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件,将多个填充后的目标Jenkins脚本组件作为目标Jenkins脚本文件;根据目标Jenkins脚本文件对待部署代码进行部署。本方案可以通过现有的Jenkins脚本组件及其对应的配置参数实现在多环境下的自动持续部署,通过Jenkins脚本文件实现在多环境下的自动持续部署,降低了项目的启动难度,提高了项目的开发效率。

Description

基于Jenkins的代码部署方法、装置、设备及介质
技术领域
本申请涉及人工智能技术领域,尤其涉及一种基于Jenkins的代码部署方法、 装置、设备及介质。
背景技术
开发和运营人员通常有不同的观念模式并使用不同的工具来完成各自的工 作。Jenkins因为集成了大量各种类型的工具,在研发运营一体化实践中成为了 广受开发和运维团队欢迎并使用的平台,越来越多的用户开始创建一个完整的 流水线形式的任务,但在传统方式下,必须针对每个阶段创建一个Jenkins任务, 再创建一个任务将这些单一的Jenkins任务串联起来。为了解决这个问题,于是 Jenkins推出了新的“流水线”类型任务。相比传统方式,使用流水线,用户只 需要创建一个任务,编写一个流水线代码文件(Jenkinsfile)就可以定义整个流水 线任务的过程。流水线代码可以存储在源码库中,实现流水线脚本的集中化、 版本化管理。
虽然默认情况下Jenkins虽然已支持多种类型的项目构建,但是要实现项目 流水线部署,每一个项目都要写大量的构建代码,并且很多开发人员对此类代 码不熟悉,极大增加了新项目的启动难度,项目开发效率低。
发明内容
本申请实施例提供了一种基于Jenkins的代码部署方法、装置、设备及介质, 可以提高项目的开发效率。
第一方面,本申请实施例提供了一种基于Jenkins的代码部署方法,其包括:
获取待部署代码;
根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本组件的 对应关系确定多个目标Jenkins脚本组件;
根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应关 系确定目标配置参数;
将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个 填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本组件作 为目标Jenkins脚本文件;
根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
第二方面,本申请实施例还提供了一种基于Jenkins的代码部署装置,其包 括:
获取单元,用于获取待部署代码;
第一确定单元,用于根据所述待部署代码的项目类型以及预设的项目类型 与Jenkins脚本组件的对应关系确定多个目标Jenkins脚本组件;
第二确定单元,用于根据所述待部署代码的项目类型以及预设的项目类型 与配置参数的对应关系确定目标配置参数;
填充单元,用于将所述目标配置参数填充至对应的所述目标Jenkins脚本组 件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins 脚本组件作为目标Jenkins脚本文件;
部署单元,用于根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理 器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现 上述方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介 质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理 器执行时可实现上述方法。
本申请实施例提供了一种基于Jenkins的代码部署方法、装置、设备及介质。 其中,所述方法包括:获取待部署代码;然后根据所述待部署代码的项目类型 以及预设的项目类型与Jenkins脚本组件的对应关系确定多个目标Jenkins脚本 组件;根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应 关系确定目标配置参数;将所述目标配置参数填充至对应的所述目标Jenkins脚 本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标 Jenkins脚本组件作为目标Jenkins脚本文件;根据所述目标Jenkins脚本文件对 所述待部署代码进行部署。本方案在部署阶段不需要开发人员写脚本代码,可 以通过现有的Jenkins脚本组件及其对应的配置参数生成Jenkins脚本文件,通 过Jenkins脚本文件实现在多环境下的自动持续部署,降低了项目的启动难度, 提高了项目的开发效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要 使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
图1为本申请实施例提供的基于Jenkins的代码部署方法的应用场景示意图;
图2为本申请实施例提供的基于Jenkins的代码部署方法的流程示意图;
图3为本申请实施例提供的基于Jenkins的代码部署方法的子流程示意图;
图4为本申请实施例提供的基于Jenkins的代码部署装置的示意性框图;
图5为本申请另一实施例提供的基于Jenkins的代码部署装置的示意性框 图;
图6为本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部 的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含” 指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个 或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施 例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使 用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该” 意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包 括这些组合。
本申请实施例提供了一种基于Jenkins的代码部署方法、装置、设备及介质。
该基于Jenkins的代码部署方法的执行主体可以是本申请实施例提供的基于Jenkins的代码部署装置,或者集成了该基于Jenkins的代码部署装置的计算机设 备,其中,该基于Jenkins的代码部署装置可以采用硬件或者软件的方式实现, 该计算机设备可以为端或服务器。
请参阅图1,图1为本申请实施例提供的基于Jenkins的代码部署方法的应 用场景示意图。该基于Jenkins的代码部署方法应用于图1中的计算机设备10 中,该计算机设备10从代码库中获取待部署代码,然后根据所述待部署代码的 项目类型以及预设的项目类型与Jenkins脚本组件的对应关系确定多个目标 Jenkins脚本组件;根据所述待部署代码的项目类型以及预设的项目类型与配置 参数的对应关系确定目标配置参数;将所述目标配置参数填充至对应的所述目 标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述 填充后的目标Jenkins脚本组件作为目标Jenkins脚本文件;根据所述目标Jenkins 脚本文件对所述待部署代码进行部署。
图2是本申请实施例提供的基于Jenkins的代码部署方法的流程示意图。如 图2所示,该方法包括以下步骤S110-150。
110、获取待部署代码。
待部署代码为开发人员写好的存储在代码库中的代码,当开发人员写好其 负责的模块代码(例如目标项目的一个分支代码)之后,会给该模块代码打上 项目标识,然后将该模块代码存储至代码库中,其中,代码库可以是版本控制 系统Git或者版本控制系统SVN(Subversion),该代码库可以为本地代码库也可 以为非本地代码库。
在一些实施例中,步骤S110包括:
获取目标项目标识;
从预设的代码库中获取与所述目标项目标识对应的多个模块代码,并将多 个所述模块代码确定为所述待部署代码。
即,用户可以向服务器输入当前需要进行部署的代码的目标项目标识,服 务器接收到目标项目标识之后,将会从预设的代码库中查询与该目标项目标识 对应的多个模块代码,然后将该多个模块代码作为待部署代码。
可见,在一些实施例中,本实施可以将同一个项目的代码进行合并,便于 后续的代码测试与部署。
120、根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本 组件的对应关系确定多个目标Jenkins脚本组件。
本实施例中,相同类型的项目拥有相同的Jenkins脚本组件环节,服务器中 存储有各种项目类型与Jenkins脚本组件的对应关系,其中,每种项目类型对应 多个Jenkins脚本组件,每个Jenkins脚本组件中包含实现对应功能的代码脚本 模板。
其中,目标Jenkins脚本组件为待部署代码的项目类型对应的脚本组件,目 标Jenkins脚本组件包含有多个环境的环境构建代码以及镜像部署代码等。
当获取待部署代码之后,将会通过分析待部署代码中的项目标识确定待部 署代码的项目类型,然后根据待部署代码的项目类型以及预设的项目类型与 Jenkins脚本组件的对应关系确定多个目标Jenkins脚本组件。
由于本实施例中的Jenkins脚本组件没有设定固定的配置参数,而不同的项 目类型中同一种Jenkins脚本组件通常需要设置不同的配置参数,所以本申请提 供的Jenkins脚本组件具有通用性,可以适用多种项目类型的构建与部署,减少 了Jenkins脚本组件的数量。
130、根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对 应关系确定目标配置参数。
本实施例中的服务器中存储有各种项目类型与配置参数的对应关系,每种 项目类型对应一个或多个配置参数,每个配置参数与一个或多个Jenkins脚本组 件相匹配,其中,配置参数包括程序对外提供服务的端口参数、依赖的CPU参 数、内存大小参数、程序启动前需要执行的相关脚本参数、程序自定义的启动 参数、部署到环境中需要启动服务的实例参数等等。
本实施例中,当服务器识别出待部署代码的项目类型之后,将会在项目类 型与配置参数的对应关系中找到待部署代码的项目类型所对应的配置参数作为 目标配置参数,其中,该目标配置参数可以为一个或者多个,目标配置参数中 携带有其与匹配的Jenkins脚本组件的组件标识,以便后续根据该组件标识与 Jenkins脚本组件相匹配。
140、将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得 到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本 组件作为目标Jenkins脚本文件。
本实施例中,每个配置参数中携带有一个或多个组件标识,当携带一个组 件标识时,一个配置参数匹配一个Jenkins脚本文件,当携带多个组件标识时, 一个配置参数匹配多个Jenkins脚本文件。
具体地,服务器首先识别出各目标配置参数中的组件标识,然后根据识别 出来的组件标识确定对应目标Jenkins脚本组件,在将该标配置参数填充至对应 的目标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件之后,将 多个填充后的目标Jenkins脚本组件作为目标Jenkins脚本文件。
在一些实施例中,目标Jenkins脚本文件中的目标Jenkins脚本组件在Jenkins 中具有一定的流水线位置,目标Jenkins脚本组件在Jenkins脚本文件中按照对 应的流水线位置进行排序,以便后续Jenkins对组件的调用。
150、根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
请参阅图3,在一些实施例中,具体地,步骤S150包括:
S151、根据所述目标Jenkins脚本文件分别构建开发环境、测试环境以及生 产环境。
本实施例中的服务器应用于代码部署系统中,其中代码部署系统中预设有 开发服务器、测试服务器以及生产服务器。
具体地,本实施例中根据所述目标Jenkins脚本文件中的开发环境构建组件 构建开发环境,根据目标Jenkins脚本文件中的测试环境构建组件构建测试环境, 根据目标Jenkins脚本文件中的生产环境构建组件构建生产环境。
其中,如果构建过程中有任何环节失败,构建会立即被终止,并生成构建 失败警报,该构建失败警报中包含有构建日志,开发人员可以通过该构建日志 查看失败原因,便于开发人员进行构建修复。
S152、在所述开发环境中创建并部署所述待部署代码的代码镜像文件,并 将所述代码镜像文件发送至预设的制品库中。
构建完开发环境、测试环境以及生产环境之后,将在开发环境中创建并部 署待部署代码的代码镜像文件,在一些实施例中,步骤S152包括:在所述开发 环境中对所述待部署代码进行代码检查;当所述待部署代码检查通过时,则在 所述开发环境中创建并部署所述待部署代码的代码镜像文件。
即,构建好开发环境之后,首先需要在开发环境中对待部署代码进行代码 检查,当检查通过时才需要在开发环境中创建并部署待部署代码的代码镜像文 件,如果检查不通过,则停止后续步骤,输出代码不通过警报,其中,该代码 不通过警报中包括代码检查日志,开发人员可以通过该代码检查日志查看检查 不通过的原因,便于开发人员进行代码修复。
本实施例中的代码检查步骤包括代码检出、执行测试用例以及常规代码检 查步骤,其中,当本实施例中的开发环境为开发环境集群时(即开发环境是多 个服务器组成的服务器集群),检查的步骤可以分别在不同的服务器中进行。
其中,为了保证在后续在测试环境以及生产环境中为了确保代码在跨环境 的服务器上一致,同时也为了减少代码在其他环境中的部署等待时间,本方案 只在开发环境中生成可部署的代码镜像文件,其它环境使用流水线类型的 Jenkins任务,为了实现以上目的,本实施例在开发环境中对待部署代码进行编 译打包并生成代码镜像文件之后,需要将该代码镜像文件上传至预设的制品库 中,当测试环境或者生产环境需要对代码镜像文件进行部署时,再从制品库中 获取该代码镜像文件。
当开发环境为服务器集群时,目标Jenkins脚本文件为不同的开发服务器构 建了不同的功能,例如,当在某个开发服务器中生成代码镜像文件之后,需要 将该代码镜像文件分别部署在开发环境集群中的每个开发服务器(部署节点) 中,其中,每个开发服务器对于代码镜像文件中不同的模块代码(分支)分别 生成不同的部署实例,不同的开发服务器可以对不同的模块代码分别进行部署。
其中,若代码镜像文件在开发服务器中部署失败,则生成开发部署失败警 报,该开发部署失败警报包括开发部署日志。
S153、若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库 中获取所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中。
本实施例中,只有当代码镜像文件在所述开发环境中部署成功,测试环境 才会从制品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述测 试环境中。
其中,如果测试环境为服务器集群,服务器集群由多个测试服务器构成, 每个测试服务器对应一个测试子环境,此时,步骤S153包括:若所述代码镜像 文件在所述开发环境中部署成功,则从制品库中获取所述代码镜像文件;根据 所述测试环境集群中每个测试子环境的功能分别对所述代码镜像文件进行部 署。
此时,目标Jenkins脚本文件为不同的测试服务器构建了不同的部署功能, 当不同的测试服务器获取到代码镜像文件之后,各测试服务器将会根据测试服 务器的功能对代码镜像文件中的不同分支分别进行部署,例如A测试服务器部 署代码镜像文件中的A分支,得到A部署实例,B测试服务器部署代码镜像文 件中的B分支,得到B部署实例。
可见,本实施例通过不同的测试服务器生成不同的部署实例,可以加快测 试环境的部署速度,并减少测试服务器的部署压力。
其中,若代码镜像文件在测试服务器中部署失败,则生成测试部署失败警 报,该测试部署失败警报包括开发部署日志。
S154、若所述代码镜像文件在所述测试环境中部署成功,则从所述制品库 中获取所述代码镜像文件,并将所述代码镜像文件部署在所述生产环境中。
本实施例中,只有当代码镜像文件在所述测试环境中部署成功,生产环境 才会从制品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述生 产环境中。
其中,如果生产环境为服务器集群,服务器集群由多个生产服务器构成, 此时,步骤S153包括:若所述代码镜像文件在所述测试环境中部署成功,则从 制品库中获取所述代码镜像文件;根据所述生产环境集群中每个生产服务器的 功能分别对所述代码镜像文件进行部署。
此时,目标Jenkins脚本文件为不同的生成服务器构建了不同的部署功能, 当不同的生产服务器获取到代码镜像文件之后,各生产服务器将会根据生产服 务器的功能对代码镜像文件中的不同分支分别进行部署,例如A生产服务器部 署代码镜像文件中的A分支,得到A部署实例,B生产服务器部署代码镜像文 件中的B分支,得到B部署实例。
可见,本实施例通过不同的生产服务器生成不同的部署实例,可以加快生 产环境的部署速度,并减少生产服务器的部署压力。
其中,若代码镜像文件在生产服务器中部署失败,则生成生产部署失败警 报,该生产部署失败警报包括开发部署日志。
综上所述,本实施例获取待部署代码;然后根据所述待部署代码的项目类 型以及预设的项目类型与Jenkins脚本组件的对应关系确定多个目标Jenkins脚 本组件;根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对 应关系确定目标配置参数;将所述目标配置参数填充至对应的所述目标Jenkins 脚本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目 标Jenkins脚本组件作为目标Jenkins脚本文件;根据所述目标Jenkins脚本文件 对所述待部署代码进行部署。本方案在部署阶段不需要开发人员写脚本代码, 可以通过现有的Jenkins脚本组件及其对应的配置参数生成Jenkins脚本文件, 通过Jenkins脚本文件实现在多环境下的自动持续部署,降低了项目的启动难度, 提高了项目的开发效率。
需要说明的是,本申请实施例可以基于人工智能技术对相关的数据进行获 取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者 数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使 用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布 式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件 技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、 自然语言处理技术以及机器学习/深度学习等几大方向。
图4是本申请实施例提供的一种基于Jenkins的代码部署装置的示意性框 图。如图4所示,对应于以上基于Jenkins的代码部署方法,本申请还提供一种 基于Jenkins的代码部署装置。该基于Jenkins的代码部署装置包括用于执行上 述基于Jenkins的代码部署方法的单元,该装置可以被配置于台式电脑、平板电 脑、手提电脑、等终端中。具体地,请参阅图4,该基于Jenkins的代码部署装 置包括获取单元401、第一确定单元402、第二确定单元403、填充单元404以 及部署单元405。
获取单元401,用于获取待部署代码;
第一确定单元402,用于根据所述待部署代码的项目类型以及预设的项目类 型与Jenkins脚本组件的对应关系确定多个目标Jenkins脚本组件;
第二确定单元403,用于根据所述待部署代码的项目类型以及预设的项目类 型与配置参数的对应关系确定目标配置参数;
填充单元404,用于将所述目标配置参数填充至对应的所述目标Jenkins脚 本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标 Jenkins脚本组件作为目标Jenkins脚本文件;
部署单元405,用于根据所述目标Jenkins脚本文件对所述待部署代码进行 部署。
在一些实施例中,所述部署单元405具体用于:
根据所述目标Jenkins脚本文件分别构建开发环境、测试环境以及生产环境;
在所述开发环境中创建并部署所述待部署代码的代码镜像文件,并将所述 代码镜像文件发送至预设的制品库中;
若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中;
若所述代码镜像文件在所述测试环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述生产环境中。
在一些实施例中,所述测试环境为测试环境集群,所述部署单元405进一 步具体用于:
若所述代码镜像文件在所述开发环境中部署成功,则从制品库中获取所述 代码镜像文件;
根据所述测试环境集群中每个测试子环境的功能分别对所述代码镜像文件 进行部署。
在一些实施例中,所述部署单元405进一步具体用于:
在所述开发环境中对所述待部署代码进行代码检查;
当所述待部署代码检查通过时,则在所述开发环境中创建并部署所述待部 署代码的代码镜像文件。
在一些实施例中,所述填充单元404具体用于:
根据所述目标配置参数中的所述组件标识确定与所述组件标识对应的目标Jenkins脚本组件;
将所述目标配置参数填充至所述对应的目标Jenkins脚本组件中,得到多个 所述填充后的目标Jenkins脚本组件。
在一些实施例中,所述获取单元401具体用于:
获取目标项目标识;
从预设的代码库中获取与所述目标项目标识对应的多个模块代码,并将多 个所述模块代码确定为所述待部署代码。
图5是本申请另一实施例提供的一种基于Jenkins的代码部署装置的示意性 框图。如图5所示,本实施例的基于Jenkins的代码部署装置是上述实施例的基 础上增加了生成单元406。
所述生成单元406,用于若所述待部署代码部署失败,则生成部署失败警报, 所述部署失败警报包括部署日志。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于Jenkins 的代码部署装置和各单元的具体实现过程,可以参考前述方法实施例中的相应 描述,为了描述的方便和简洁,在此不再赘述。
上述基于Jenkins的代码部署装置可以实现为一种计算机程序的形式,该计 算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本申请实施例提供的一种计算机设备的示意性框图。该 计算机设备600可以是终端,也可以是服务器,其中,终端可以是智能手机、 平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功 能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务 器集群。
参阅图6,该计算机设备600包括通过系统总线601连接的处理器602、存 储器和网络接口605,其中,存储器可以包括非易失性存储介质603和内存储器 604。
该非易失性存储介质603可存储操作系统6031和计算机程序6032。该计算 机程序6032包括程序指令,该程序指令被执行时,可使得处理器602执行一种 基于Jenkins的代码部署方法。
该处理器602用于提供计算和控制能力,以支撑整个计算机设备600的运 行。
该内存储器604为非易失性存储介质603中的计算机程序6032的运行提供 环境,该计算机程序6032被处理器602执行时,可使得处理器602执行一种基 于Jenkins的代码部署方法。
该网络接口605用于与其它设备进行网络通信。本领域技术人员可以理解, 图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对 本申请方案所应用于其上的计算机设备600的限定,具体的计算机设备600可 以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部 件布置。
其中,所述处理器602用于运行存储在存储器中的计算机程序6032,以实 现如下步骤:
获取待部署代码;
根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本组件的 对应关系确定多个目标Jenkins脚本组件;
根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应关 系确定目标配置参数;
将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个 填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本组件作为 目标Jenkins脚本文件;
根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
在一些实施例中,处理器602在实现所述根据所述目标Jenkins脚本文件对 所述待部署代码进行部署步骤时,具体实现如下步骤:
根据所述目标Jenkins脚本文件分别构建开发环境、测试环境以及生产环境;
在所述开发环境中创建并部署所述待部署代码的代码镜像文件,并将所述 代码镜像文件发送至预设的制品库中;
若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中;
若所述代码镜像文件在所述测试环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述生产环境中。
在一些实施例中,所述测试环境为测试环境集群,处理器602在实现所述 若所述代码镜像文件在所述开发环境中部署成功,则从制品库中获取所述代码 镜像文件,并将所述代码镜像文件部署在所述测试环境中步骤时,具体实现如 下步骤:
若所述代码镜像文件在所述开发环境中部署成功,则从制品库中获取所述 代码镜像文件;
根据所述测试环境集群中每个测试子环境的功能分别对所述代码镜像文件 进行部署。
在一些实施例中,处理器602在实现所述在所述开发环境中创建并部署所 述待部署代码的代码镜像文件步骤时,具体实现如下步骤:
在所述开发环境中对所述待部署代码进行代码检查;
当所述待部署代码检查通过时,则在所述开发环境中创建并部署所述待部 署代码的代码镜像文件。
在一些实施例中,所述目标配置参数携带有组件标识,处理器602在实现 所述将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个 填充后的目标Jenkins脚本组件步骤时,具体实现如下步骤:
根据所述目标配置参数中的所述组件标识确定与所述组件标识对应的目标Jenkins脚本组件;
将所述目标配置参数填充至所述对应的目标Jenkins脚本组件中,得到多个 所述填充后的目标Jenkins脚本组件。
在一些实施例中,处理器602在实现所述获取待部署代码步骤时,具体实 现如下步骤:
获取目标项目标识;
从预设的代码库中获取与所述目标项目标识对应的多个模块代码,并将多 个所述模块代码确定为所述待部署代码。
在一些实施例中,处理器602在实现所述根据所述目标Jenkins脚本文件对 所述待部署代码进行部署步骤之后,还实现如下步骤:
若所述待部署代码部署失败,则生成部署失败警报,所述部署失败警报包 括部署日志。
应当理解,在本申请实施例中,处理器602可以是中央处理单元(CentralProcessing Unit,CPU),该处理器602还可以是其他通用处理器、数字信号处理 器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或 者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中, 通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分 流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程 序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介 质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的 实施例的流程步骤。
因此,本申请还提供一种存储介质。该存储介质可以为计算机可读存储介 质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指 令被处理器执行时使处理器执行如下步骤:
获取待部署代码;
根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本组件的 对应关系确定多个目标Jenkins脚本组件;
根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应关 系确定目标配置参数;
将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个 填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本组件作 为目标Jenkins脚本文件;
根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
在一些实施例中,所述处理器在执行所述程序指令而实现所述根据所述目 标Jenkins脚本文件对所述待部署代码进行部署步骤时,具体实现如下步骤:
根据所述目标Jenkins脚本文件分别构建开发环境、测试环境以及生产环境;
在所述开发环境中创建并部署所述待部署代码的代码镜像文件,并将所述 代码镜像文件发送至预设的制品库中;
若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中;
若所述代码镜像文件在所述测试环境中部署成功,则从所述制品库中获取 所述代码镜像文件,并将所述代码镜像文件部署在所述生产环境中。
在一些实施例中,所述测试环境为测试环境集群,所述处理器在执行所述 程序指令而实现所述若所述代码镜像文件在所述开发环境中部署成功,则从制 品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中 步骤时,具体实现如下步骤:
若所述代码镜像文件在所述开发环境中部署成功,则从制品库中获取所述 代码镜像文件;
根据所述测试环境集群中每个测试子环境的功能分别对所述代码镜像文件 进行部署。
在一些实施例中,所述处理器在执行所述程序指令而实现所述在所述开发 环境中创建并部署所述待部署代码的代码镜像文件步骤时,具体实现如下步骤:
在所述开发环境中对所述待部署代码进行代码检查;
当所述待部署代码检查通过时,则在所述开发环境中创建并部署所述待部 署代码的代码镜像文件。
在一些实施例中,所述目标配置参数携带有组件标识,所述处理器在执行 所述程序指令而实现所述将所述目标配置参数填充至对应的所述目标Jenkins脚 本组件中,得到多个填充后的目标Jenkins脚本组件步骤时,具体实现如下步骤:
根据所述目标配置参数中的所述组件标识确定与所述组件标识对应的目标Jenkins脚本组件;
将所述目标配置参数填充至所述对应的目标Jenkins脚本组件中,得到多个 所述填充后的目标Jenkins脚本组件。
在一些实施例中,所述处理器在执行所述程序指令而实现所述获取待部署 代码步骤时,具体实现如下步骤:
获取目标项目标识;
从预设的代码库中获取与所述目标项目标识对应的多个模块代码,并将多 个所述模块代码确定为所述待部署代码。
在一些实施例中,所述处理器在执行所述程序指令而实现所述根据所述目 标Jenkins脚本文件对所述待部署代码进行部署步骤之后,还实现如下步骤:
若所述待部署代码部署失败,则生成部署失败警报,所述部署失败警报包 括部署日志。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示 例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现, 为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地 描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决 于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用 来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范 围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可 以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例 如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划 分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特 征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。 本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外, 在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使 用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质 上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软 件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干 指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等) 执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到 各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。 因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于Jenkins的代码部署方法,其特征在于,包括:
获取待部署代码;
根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本组件的对应关系确定多个目标Jenkins脚本组件;
根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应关系确定目标配置参数;
将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本组件作为目标Jenkins脚本文件;
根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标Jenkins脚本文件对所述待部署代码进行部署,包括:
根据所述目标Jenkins脚本文件分别构建开发环境、测试环境以及生产环境;
在所述开发环境中创建并部署所述待部署代码的代码镜像文件,并将所述代码镜像文件发送至预设的制品库中;
若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中;
若所述代码镜像文件在所述测试环境中部署成功,则从所述制品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述生产环境中。
3.根据权利要求2所述的方法,其特征在于,所述测试环境为测试环境集群,所述若所述代码镜像文件在所述开发环境中部署成功,则从所述制品库中获取所述代码镜像文件,并将所述代码镜像文件部署在所述测试环境中,包括:
若所述代码镜像文件在所述开发环境中部署成功,则从制品库中获取所述代码镜像文件;
根据所述测试环境集群中每个测试子环境的功能分别对所述代码镜像文件进行部署。
4.根据权利要求2所述的方法,其特征在于,所述在所述开发环境中创建并部署所述待部署代码的代码镜像文件,包括:
在所述开发环境中对所述待部署代码进行代码检查;
当所述待部署代码检查通过时,则在所述开发环境中创建并部署所述待部署代码的代码镜像文件。
5.根据权利要求1所述的方法,其特征在于,所述目标配置参数携带有组件标识,所述将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件,包括:
根据所述目标配置参数中的所述组件标识确定与所述组件标识对应的目标Jenkins脚本组件;
将所述目标配置参数填充至所述对应的目标Jenkins脚本组件中,得到多个所述填充后的目标Jenkins脚本组件。
6.根据权利要求1所述的方法,其特征在于,所述获取待部署代码包括:
获取目标项目标识;
从预设的代码库中获取与所述目标项目标识对应的多个模块代码,并将多个所述模块代码确定为所述待部署代码。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述目标Jenkins脚本文件对所述待部署代码进行部署之后,所述方法还包括:
若所述待部署代码部署失败,则生成部署失败警报,所述部署失败警报包括部署日志。
8.一种基于Jenkins的代码部署装置,其特征在于,包括:
获取单元,用于获取待部署代码;
第一确定单元,用于根据所述待部署代码的项目类型以及预设的项目类型与Jenkins脚本组件的对应关系确定多个目标Jenkins脚本组件;
第二确定单元,用于根据所述待部署代码的项目类型以及预设的项目类型与配置参数的对应关系确定目标配置参数;
填充单元,用于将所述目标配置参数填充至对应的所述目标Jenkins脚本组件中,得到多个填充后的目标Jenkins脚本组件,将多个所述填充后的目标Jenkins脚本组件作为目标Jenkins脚本文件;
部署单元,用于根据所述目标Jenkins脚本文件对所述待部署代码进行部署。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-7中任一项所述的方法。
CN202111271460.4A 2021-10-29 2021-10-29 基于Jenkins的代码部署方法、装置、设备及介质 Pending CN114047934A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111271460.4A CN114047934A (zh) 2021-10-29 2021-10-29 基于Jenkins的代码部署方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111271460.4A CN114047934A (zh) 2021-10-29 2021-10-29 基于Jenkins的代码部署方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114047934A true CN114047934A (zh) 2022-02-15

Family

ID=80206463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111271460.4A Pending CN114047934A (zh) 2021-10-29 2021-10-29 基于Jenkins的代码部署方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114047934A (zh)

Similar Documents

Publication Publication Date Title
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
CN112286779B (zh) 测试任务处理方法、装置、存储介质和计算机设备
CN108563579B (zh) 白盒测试方法、装置、系统及存储介质
CN108874678B (zh) 一种智能程序的自动测试方法及装置
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
CN111309734B (zh) 自动生成表数据的方法及系统
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN114237676A (zh) 一种fpga逻辑更新方法、装置、设备及可读存储介质
CN115794213A (zh) 基于嵌入式系统的可配置对象管理方法、装置和设备
CN113535141A (zh) 数据库操作代码的生成方法及装置
CN114090365A (zh) 使用动态链接库进行功能测试的方法、装置和设备
CN111562942B (zh) 基于Gitlab的移动APP持续集成装置和方法
CN113778771A (zh) 一种终端测试的方法、系统及存储介质
CN114047934A (zh) 基于Jenkins的代码部署方法、装置、设备及介质
CN108681426B (zh) 用于针对数据执行特征处理的方法及系统
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN115952044A (zh) 一种自动化测试方法及其装置
US11366642B1 (en) Change migration: processes for ensuring successful deployment of design changes
CN116266117A (zh) 模型转换方法、计算机程序产品、存储介质及电子设备
CN111858302B (zh) 小程序的测试方法、装置、电子设备及存储介质
CN113240088A (zh) 文本意图识别模型的训练方法
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
CN113254054B (zh) 一种智能合约一站式开发系统及方法
CN117076335B (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