CN110490483A - 投产方法、装置、设备和存储介质 - Google Patents
投产方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110490483A CN110490483A CN201910792546.8A CN201910792546A CN110490483A CN 110490483 A CN110490483 A CN 110490483A CN 201910792546 A CN201910792546 A CN 201910792546A CN 110490483 A CN110490483 A CN 110490483A
- Authority
- CN
- China
- Prior art keywords
- candidate
- gone
- target
- pipeline
- building product
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
- G06Q10/06375—Prediction of business process outcome or impact based on a proposed change
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种投产方法、装置、设备和存储介质。该方法包括:依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。本发明实施例通过将流水线与投产无缝串接起来,基于流水线中的质检过程,不仅避免了人工干预,而且确保了用于投产的投产版本包为前述经过质检的构建产物,降低投产风险,提高投产质量和效率。
Description
技术领域
本发明实施例涉及软件及网络技术领域,尤其涉及一种投产方法、装置、设备和存储介质。
背景技术
投产发布是软件或网站工程的一个重要环节,用来生成投产版本,检验投产版本,并将投产版本发布到生产环境。
目前,可以通过软件开发人员手工将代码工程生成可执行程序,基于人工对代码的正确性以及投产版本的企业级要求进行验证,最终将可执行程序投产发布。或者,还可以通过自定义的流水线自动将代码工程生成可执行程序,将可执行程序作为流水线生成的构建产物,由开发人员对构建产物进行验证,最终将构建产物进行上线部署。
然而,现有投产方式不仅对于人工的依赖性较强,而且难以对生成的构建产物进行企业级的合规检测,流水线与投产环节断层较大,无法确保投产版本不被篡改等恶意处理,进而投产风险较大且投产质量较低。
发明内容
本发明实施例提供了一种投产方法、装置、设备和存储介质,能够降低投产风险,提高投产质量和效率。
第一方面,本发明实施例提供了一种投产方法,包括:
依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
第二方面,本发明实施例提供了一种投产装置,包括:
流水线创建模块,用于依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
流水线执行模块,用于依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
投产模块,用于依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的投产方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的投产方法。
本发明实施例通过待投产代码工程以及预先构建的投产流水线模板,创建目标流水线,执行目标流水线生成待投产代码工程的至少一个候选构建产物及其质检报告,从而基于候选构建产物及其质检报告选择目标构建产物进行投产上线。本发明实施例通过将流水线与投产无缝串接起来,基于流水线中的质检过程,不仅避免了人工干预,而且确保了用于投产的投产版本包为前述经过质检的构建产物,降低投产风险,提高投产质量和效率。
附图说明
图1为本发明实施例一提供的一种投产方法的流程图;
图2为本发明实施例一提供的制定投产流水线模板的示例图;
图3为本发明实施例二提供的一种投产方法的流程图;
图4为本发明实施例二提供的投产示例图;
图5为本发明实施例三提供的一种投产装置的结构示意图;
图6为本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种投产方法的流程图,本实施例可适用于对待投产代码工程进行投产发布的情况,该方法可由一种投产装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机。该方法具体包括如下:
步骤110、依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线。
在本发明具体实施例中,代码工程是指开发人员采用开发工具所支持的汇编语言和高级语言所编写出来的源代码,源代码经过编译程序产生的能够被计算机直接识别的二进制代码为目标代码,将目标代码连接后形成的可执行文件为可执行代码。待投产代码工程是指用于投产发布的源代码。因此,待投产代码工程需要在经过读取、验证、编译以及测试等环节处理之后,才能将待投产代码工程以合适的形式作为可执行代码发布部署到生产环境中,以实现软件版本的发布、更新或升级等。
本实施例中,流水线可以是指基于一定的流水线流程自动化地将代码工程生成可执行文件的处理过程,相应的,可执行文件作为流水线的构建产物,可以是每一次任务构建成功后所产生的war包或jar包等,并保存有对应的原始代码工程信息、流水线信息等。投产流水线模板是指固化了流水线流程的模板,可供多条流水线重复使用的一套流水线设置。流水线流程中可以包括构建产物的生成流程,包括例如获取代码、代码静态扫描、代码编译以及归档成品等步骤;流水线流程中可以包括构建产物的质检流程,包括例如检测生成流程中各个生成环节的执行状态、单元测试覆盖率、单元测试执行成功率、接口测试覆盖率、接口测试执行成功率、漏洞扫描结果等。
本实施例中,流水线中可以包括多种模板,每种用途的模板可以包括一个或多个。其中一种为候选投产流水线模板,由一系列可自动执行的软件操作步骤构成,通过执行这些步骤可以产出软件投产版本,用于构建产物的生成和质检以供投产使用。可选的,在依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线之前,还包括:依据代码工程的开发语言和开发框架,确定构建产物的生成流程和质检流程;依据构建产物的生成流程和质检流程,构建至少一个候选投产流水线模板。其中,开发语言可以是C语言、Java语言、Python语言等汇编语言或高级语言,开发框架可以是Spring框架、Django框架等。依据代码工程的开发语言和开发框架,确定用于构建产物生成和质检的各个步骤以及步骤之间的执行顺序,组成构建产物的生成流程和质检流程,制定候选投产流水线模板供用户选择使用。
示例性的,图2为制定投产流水线模板的示例图。如图2所示,用户可以自定义流水线步骤、配置流水线信息。在图2中是Maven代码工程的一个投产流水线模板的简单例子,步骤设置有获取代码(getCode)、代码静态扫描(Fortify扫描)、代码编译(Compile)以及归档成品,通过上面的步骤可以完成对代码最基础的验证功能。此外,用户还可以设置更多的检验步骤,例如准单元测试、生产环境部署、接口测试等。
本实施例中,基于流水线中预先提供的至少一个候选投产流水线模板,可以根据待投产代码工程从中选择一个候选投产流水线模板来创建目标流水线。目标流水线用于将待投产代码工程生成构建产物。其中,在创建目标流水线时,基于投产流水线模板中所固化的处理步骤,可以对所选择的投产流水线模板再次进行自定义,例如对流水线流程进行步骤的增删改等操作。待投产代码工程的目标流水线可以为一个或多个,多个目标流水线中采用的投产流水线模板可以相同或者不同。相应的,生成的待投产代码工程的构建产物可以为一个或多个,供投产时择优选取。
具体的,依据待投产代码工程的开发语言和开发框架,从至少一个候选投产流水线模板中选择目标投产流水线模板。依据目标投产流水线模板,用户至少可以配置流水线参数,例如待投产代码工程的读取渎职,还可以重新配置流水线流程,以创建目标流水线。在一个优选的实施方式中,可以根据当前投产版本需求、企业级需求等方面,预先规定流水线流程中至少一个必不可少的处理步骤。例如,假设当前需要规定企业级统一的质检标准,则预先规定该企业级质检步骤为预设必不可少的处理步骤。相应的,为所创建的流水线提供了提交功能,通过目标流水线提交,对目标流水线中各个处理步骤进行遍历,可以基于关键词来对目标流水线中的流水线流程进行检查,以检查目标流水线中是否包括预设必不可少的处理步骤。若检查到流水线流程中包含预设必不可少的处理步骤,则确定目标流水线提交成功,即目标流水线创建成功,可进行流水线的执行。
步骤120、依据目标流水线,生成待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告。
在本发明具体实施例中,执行目标流水线,依据目标流水线的目标投产流水线模板中的生成流程,生成待投产代码工程的候选构建产物。构建产物是指待投产代码工程基于流水线自动化所生成的可执行程序,待投产代码工程基于不同流水线或同一流水线的不同执行时机所生成的构建产物,均作为待投产代码工程的候选构建产物。相应的,候选构建产物附加有流水线信息和待投产代码工程信息等,还可以附加有构建编号信息以对构建产物进行唯一标识,还可以基于一定的标识规则,通过构建编号信息标识出关联的流水线信息和待投产代码工程信息等。
本实施例中,执行目标流水线,依据目标流水线的目标投产流水线模板中的质检流程,对候选构建产物的各个生成环节以及生成结果进行验证,生成候选构建产物的质检报。鉴于流水线流程中可以包括质检流程,相应的,质检报告是指基于流水线对构建产物进行自动化验证所生成的报告。质检报告中可以包括所被质检的构建产物的标识信息,例如构建编码信息、流水线信息、构建时间等,质检报告的正文中包括针对质检流程中的各项质检步骤所列出的检验值和参考值,通过检验值与参考值之间的比对列出各项的质检结果,并根据各项的质检结果给出构建产物最终的质检结果。可选的,只有所有项的之间结果均通过时构建产物最终的质检结果才为成功,表示质检通过。示例性的,表1为质检报告示例表。通过质检报告可以繁育用户查看构建产物的质检结果,便于投产时参考。
表1质检报告示例表
步骤130、依据待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对待投产代码工程进行投产上线。
在本发明具体实施例中,投产是指软件版本的发布上线。由于将流水线与投产串接起来,因此在进行投产时,用户在确定待投产代码工程之后,可以直接地带出待投产代码工程关联的至少一个候选构建产物,以及各个候选构建产物的质检报告。即将流水线与投产有机的结合起来,避免流水线过程与投产过程之间的独立导致投产时所采用的构建产物脱离了流水线的处理过程而给投产带来的风险。从而基于待投产代码工程所带出的构建产物和质检报告,基于质检报告的质检结果,从待投产代码工程的至少一个候选构建产物中选择合适的构建产物作为目标构建产物,来创建目标投产任务进行投产上线。
具体的,响应于用户对于待投产代码工程的选择操作,自动展示待投产代码工程基于投产流水线模板生成的至少一个候选构建产物,以及候选构建产物所属的流水线的流水线流程、构建状态和质检报告。依据候选构建产物所属的流水线的流水线流程、构建状态和质检报告,从至少一个候选构建产物中,选择流水线流程符合当前投产版本需求、构建状态成功以及质检结果通过的候选构建产物作为目标构建产物,以创建目标投产任务。执行目标投产任务,将目标构建产物添加到投产版本包中,以将投产版本包进行投产上线。
本实施例的技术方案,通过待投产代码工程以及预先构建的投产流水线模板,创建目标流水线,执行目标流水线生成待投产代码工程的至少一个候选构建产物及其质检报告,从而基于候选构建产物及其质检报告选择目标构建产物进行投产上线。本发明实施例通过将流水线与投产无缝串接起来,基于流水线中的质检过程,不仅避免了人工干预,而且确保了用于投产的投产版本包为前述经过质检的构建产物,降低投产风险,提高投产质量和效率。
实施例二
本实施例在上述实施例一的基础上,提供了投产方法的一个优选实施方式,能够对流水线流程进行必要步骤检查,以及基于流水线进行企业级合规质检。图3为本发明实施例二提供的一种投产方法的流程图,如图3所示,该方法具体包括如下:
步骤310、依据待投产代码工程的开发语言和开发框架,从至少一个候选投产流水线模板中选择目标投产流水线模板。
在本发明具体实施例中,可以将待投产代码工程的开发语言和开发框架,分别与候选投产流水线模板所属的开发语言和开发框架进行比对,将开发语言和开发框架均相匹配的候选投产流水线模板作为目标投产流水线模板,供创建流水线使用。
其中,在在依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线之前,可以通过调用流水线模板创建接口,依据代码工程的开发语言和开发框架,确定构建产物的生成流程和质检流程;依据构建产物的生成流程和质检流程,构建至少一个候选投产流水线模板。示例性的,流水线模板创建接口设计如表2所示,该接口名称可以为CreatePipelineTemple,该接口用于创建流水线模板,在流水线模板创建时需要输入流水线模板名称、流水线模板类型以及流水线步骤等,最终输出流水线模板的创建结果,例如成功。
表2流水线模板创建接口的设计
本实施例中,在创建流水线的过程中,通过用户对于待投产代码工程的选择操作,可以自动对待投产代码工程进行开发语言和开发框架的识别,从而基于候选投产流水线模板所属的开发语言和开发框架,依据识别结果进行自动匹配,向用户推荐相匹配的候选投产流水线模板作为目标投产流水线模板。
示例性的,流水线模板的数据模型如表3所示。表3中只列出了一些关键字段,其中,第一列表示模板中一级字段名称,第二列表示一级字段下的二级字段名称,第三列表示字段类型,第四列为字段的描述信息。字段temple_type表示流水线模板中可以包括多种模板,例如本实施例投产所采用的投产流水线模板,以及日处理流水线模板和普通流水线模板等。
表3流水线模板的数据模型
步骤320、依据目标投产流水线模板,配置流水线流程和流水线参数,以创建目标流水线。
在本发明具体实施例中,投产流水线模板中已经预先固化了流水线流程中的各个处理步骤,用户可以基于投产流水线模板配置流水线参数,例如待投产代码的读取地址等,从而直接采用投产流水线模板创建目标流水线。此外,用户还可以在创建流水线时在投产流水线模板的基础上进行进一步的流水线流程自定义,例如增添、删除或修改某个或某些处理步骤,并配置相应的流水线参数,得到创建的目标流水线。
示例性的,流水线的数据模型如表4所示。第一列表示流水线名称,第二列表示字段类型,第三列为字段的描述信息。
表4流水线的数据模型
步骤330、提交目标流水线,以对目标流水线中的流水线流程进行检查。
在本发明具体实施例中,目标流水线的提交用于对目标流水线中的流水线流程进行检查,以确定目标流水线的流水线流程中是否包含预设投产流水线步骤。其中,预设投产流水线步骤是指根据当前投产版本需求、企业级需求等方面,预先规定流水线流程中的至少一个必不可少的处理步骤。例如,假设当前需要规定企业级统一的质检标准,则预先规定该企业级质检步骤为预设投产流水线步骤;再例如,假设当前投产版本需要满足一定的生产环境部署,则预先将该生产环境部署步骤预设投产流水线步骤。
具体的,在用户通过流水线流程和流水线参数等配置完成目标流水线创建之后,可以将目标流水线进行提交。通过目标流水线地提交,对目标流水线中各个处理步骤进行遍历,可以基于关键词来对目标流水线中的流水线流程进行检查,以检查目标流水线中是否包括预设投产流水线步骤。
步骤340、若检查到流水线流程中包含预设投产流水线步骤,则确定目标流水线提交成功。
步骤350、执行目标流水线,依据目标流水线的目标投产流水线模板中的生成流程,生成待投产代码工程的候选构建产物。
步骤360、依据目标流水线的目标投产流水线模板中的质检流程,对候选构建产物的各个生成环节以及生成结果进行验证,生成候选构建产物的质检报告。
其中,目标流水线成功提交表示目标流水线创建成功,符合当前投产版本需求,进而可以通过执行目标流水线,依据目标流水线的目标投产流水线模板中的生成流程,自动化生成待投产代码工程的候选构建产物,依据目标流水线的目标投产流水线模板中的质检流程,自动化地对候选构建产物的各个生成环节以及生成结果进行验证,并生成候选构建产物的质检报告。
示例性的,流水线执行详情的数据模型如表5所示。其中,第一列表示投产任务中一级字段名称,第二列表示一级字段下的二级字段名称,第三列表示字段类型,第四列为字段的描述信息。
表5流水线执行详情的数据模型
名称 | 字段类型 | 描述 | |
pipeline_id | varchar | 流水线编号 | |
build_num | varchar | 流水线构建编号 | |
code_package | varchar | 构建产出的版本包 | |
step_build_info_list | 步骤执行信息 | ||
step_name | varchar | 步骤名称 | |
step_type | varchar | 步骤类型 | |
step_result | varchar | 步骤执行结果 |
其中,示例性的,可以通过调用流水线执行详情获取接口,来获取流水线执行详情。其流水线执行详情获取接口设计如表6所示,该接口名称可以为getPipelineBuildInfo,该接口用于获取流水线执行详情,在流水线执行详情获取时需要输入流水线编号和构建产物的构建编号,最终输出构建产物的版本包、步骤执行信息等。
表6流水线执行详情获取接口的设计
本实施例能够通过基于投产流水线模板的目标流水线生成投产版本的构建产物,并对投产版本构建产物进行合规性检验,自动生成投产版本构建产物质检报告。其中投产流水线模板中根据软件开发语言、开发框架的不同,预制不同的投产质检步骤。将此应用于企业级所有软件下的版本投产,可规范化企业级投产流程,保证软件版本质量,提高企业级投产发布的自动化水平。
步骤370、依据待投产代码工程的至少一个候选构建产物所属的流水线和质检报告,确定待投产代码工程的目标构建产物,以创建目标投产任务。
在本发明具体实施例中,投产发布时只能选择基于投产流水线模板的目标流水线生成的构建产物加入到投产版本包。由于将流水线与投产串接起来,因此在进行投产时,用户在确定待投产代码工程之后,可以直接地带出待投产代码工程关联的至少一个候选构建产物,以及各个候选构建产物的质检报告。从而基于待投产代码工程所带出的构建产物和质检报告,基于质检报告的质检结果,从待投产代码工程的至少一个候选构建产物中选择合适的构建产物作为目标构建产物,来创建目标投产任务进行投产上线。
在一优选实施方式中,响应于用户对于待投产代码工程的选择操作,展示待投产代码工程基于投产流水线模板生成的至少一个候选构建产物,以及候选构建产物所属的流水线的流水线流程、构建状态和质检报告;依据候选构建产物所属的流水线的流水线流程、构建状态和质检报告,确定待投产代码工程的目标构建产物。
示例性的,图4为投产示例图。如图4所示,用户进行投产时无需手动添加构建产物,而是直接选择待投产代码工程即可。相应的,该待投产代码工程下所有的流水线信息、分支信息、构建产物的构建编号信息以及构建状态信息,都会自动地展示给用户。其中,分支信息是指不同用户享有不同的功能所对应的源代码。流水线信息、分支信息、构建产物的构建编号信息以及构建状态信息之间具有耦合关系,即一旦用户切换了其中一个信息,则其余信息也相应进行改变。进而在用户选择了待投产代码工程后,自动展示该代码工程对应的流水线,并展示该流水线执行成功的构建编号,选中某个构建编号,自动展示构建产物、投产流水线模板详细执行情况和质检报告,便于用户选择待投产代码工程的目标构建产物。可选的,从至少一个候选构建产物中,选择流水线流程符合当前投产版本需求、构建状态成功以及质检结果通过的候选构建产物作为目标构建产物。
示例性的,投产任务的数据模型如表7所示,与图4中投产版本包信息相对应。其中,第一列表示投产任务中一级字段名称,第二列表示一级字段下的二级字段名称,第三列表示字段类型,第四列为字段的描述信息。
表7投产任务的数据模型
名称 | 字段类型 | 描述 | |
deliver_id | varchar | 模板编号,主键 | |
list | 版本包列表(单次投产任务支持多版本包) | ||
code_proj | varchar | 代码工程名称 | |
pipeline_id | int | 流水线编号 | |
code_branch | varchar | 代码分支 | |
build_num | int | 构建编号 |
步骤380、执行目标投产任务,将目标构建产物添加到投产版本包中,以将投产版本包进行投产上线。
在本发明具体实施例中,投产版本包是指用于版本上线的一系列代码或可执行文件、配置文件等文件的文件集合。其中可以包括该版本下不同代码工程的构建产物。执行创建的目标投产任务,将各个构建产物进行连接,形成可执行文件形式的投产版本包,上线部署到生产环境当中。
本实施例的技术方案,依据待投产代码工程的开发语言和开发框架,从至少一个候选投产流水线模板中选择目标投产流水线模板,配置流水线流程和流水线参数来创建目标流水线,通过目标流水线的提交对目标流水线中的流水线流程进行检查,若检查到流水线流程中包含预设投产流水线步骤,则确定目标流水线提交成功,执行目标流水线生成待投产代码工程的候选构建产物及其质检报告,最终只能选择基于投产流水线模板的目标流水线生成的构建产物加入到投产版本包进行投产上线。本发明实施例在投产流水线模板中固化企业级软件版本生成、质量检验、合规性检验等步骤,通过将流水线与投产无缝串接起来,投产发布获取投产发布流水线执行成功的构建产物和质检报告,自动生成最终投产版本进行投产,不仅避免了人工干预,而且确保了用于投产的投产版本包为前述经过质检的构建产物,降低投产风险,提高投产质量和效率。
实施例三
图4为本发明实施例三提供的一种投产装置的结构示意图,本实施例可适用于对待投产代码工程进行投产发布的情况,该装置可实现本发明任意实施例所述的投产方法。该装置具体包括如下:
流水线创建模块510,用于依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
流水线执行模块520,用于依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
投产模块530,用于依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
进一步的,所述装置还包括模板制定模块540,具体用于:
在所述依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线之前,依据代码工程的开发语言和开发框架,确定构建产物的生成流程和质检流程;
依据所述构建产物的生成流程和质检流程,构建至少一个候选投产流水线模板。
可选的,所述流水线创建模块510具体用于:
依据所述待投产代码工程的开发语言和开发框架,从所述至少一个候选投产流水线模板中选择目标投产流水线模板;
依据所述目标投产流水线模板,配置流水线流程和流水线参数,以创建所述目标流水线;
提交所述目标流水线,以对所述目标流水线中的流水线流程进行检查;
若检查到所述流水线流程中包含预设投产流水线步骤,则确定所述目标流水线提交成功。
可选的,所述流水线执行模块520具体用于:
执行所述目标流水线,依据所述目标流水线的目标投产流水线模板中的生成流程,生成所述待投产代码工程的候选构建产物;
依据所述目标流水线的目标投产流水线模板中的质检流程,对所述候选构建产物的各个生成环节以及生成结果进行验证,生成所述候选构建产物的质检报告。
可选的,所述投产模块530包括:
投产任务创建单元5301,用于依据所述待投产代码工程的至少一个候选构建产物所属的流水线和质检报告,确定所述待投产代码工程的目标构建产物,以创建目标投产任务;
投产上线单元5302,用于执行所述目标投产任务,将所述目标构建产物添加到投产版本包中,以将所述投产版本包进行投产上线。
可选的,所述投产任务创建单元5301具体用于:
响应于用户对于待投产代码工程的选择操作,展示所述待投产代码工程基于投产流水线模板生成的至少一个候选构建产物,以及候选构建产物所属的流水线的流水线流程、构建状态和质检报告;
依据候选构建产物所属的流水线的流水线流程、构建状态和质检报告,确定所述待投产代码工程的目标构建产物。
可选的,所述投产任务创建单元5301具体用于:
从所述至少一个候选构建产物中,选择流水线流程符合当前投产版本需求、构建状态成功以及质检结果通过的候选构建产物作为目标构建产物。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了投产流水线模板的制定、目标投产流水线模板的选择、流水线的创建、流水线的提交与检查、构建产物的生成和质检、质检报告的生成、投产任务的创建、目标构建产物的选择、投产版本包的生成以及投产版本包的上线发布等功能。本发明实施例在投产流水线模板中固化企业级软件版本生成、质量检验、合规性检验等步骤,通过将流水线与投产无缝串接起来,投产发布获取投产发布流水线执行成功的构建产物和质检报告,自动生成最终投产版本进行投产,不仅避免了人工干预,而且确保了用于投产的投产版本包为前述经过质检的构建产物,降低投产风险,提高投产质量和效率。
实施例四
图6为本发明实施例四提供的一种设备的结构示意图。如图6所示,该设备具体包括:一个或多个处理器610,图6中以一个处理器610为例;存储器620,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器610执行,使得一个或多个处理器610实现本发明任意实施例所述的投产方法。处理器610与存储器620可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器620,作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的投产方法对应的程序指令(例如,构建产物的生成和质检以及目标构建产物的选择和投产发布)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的投产方法。
存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种投产方法,该方法包括:
依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的投产方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种投产方法,其特征在于,包括:
依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
2.根据权利要求1所述的方法,其特征在于,在所述依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线之前,还包括:
依据代码工程的开发语言和开发框架,确定构建产物的生成流程和质检流程;
依据所述构建产物的生成流程和质检流程,构建至少一个候选投产流水线模板。
3.根据权利要求1所述的方法,其特征在于,所述依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线,包括:
依据所述待投产代码工程的开发语言和开发框架,从所述至少一个候选投产流水线模板中选择目标投产流水线模板;
依据所述目标投产流水线模板,配置流水线流程和流水线参数,以创建所述目标流水线;
提交所述目标流水线,以对所述目标流水线中的流水线流程进行检查;
若检查到所述流水线流程中包含预设投产流水线步骤,则确定所述目标流水线提交成功。
4.根据权利要求1所述的方法,其特征在于,所述依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,包括:
执行所述目标流水线,依据所述目标流水线的目标投产流水线模板中的生成流程,生成所述待投产代码工程的候选构建产物;
依据所述目标流水线的目标投产流水线模板中的质检流程,对所述候选构建产物的各个生成环节以及生成结果进行验证,生成所述候选构建产物的质检报告。
5.根据权利要求1所述的方法,其特征在于,所述依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线,包括:
依据所述待投产代码工程的至少一个候选构建产物所属的流水线和质检报告,确定所述待投产代码工程的目标构建产物,以创建目标投产任务;
执行所述目标投产任务,将所述目标构建产物添加到投产版本包中,以将所述投产版本包进行投产上线。
6.根据权利要求5所述的方法,其特征在于,所述依据所述待投产代码工程的至少一个候选构建产物所属的流水线和质检报告,确定所述待投产代码工程的目标构建产物,包括:
响应于用户对于待投产代码工程的选择操作,展示所述待投产代码工程基于投产流水线模板生成的至少一个候选构建产物,以及候选构建产物所属的流水线的流水线流程、构建状态和质检报告;
依据候选构建产物所属的流水线的流水线流程、构建状态和质检报告,确定所述待投产代码工程的目标构建产物。
7.根据权利要求6所述的方法,其特征在于,所述依据候选构建产物所属的流水线的流水线流程、构建状态和质检报告,确定所述待投产代码工程的目标构建产物,包括:
从所述至少一个候选构建产物中,选择流水线流程符合当前投产版本需求、构建状态成功以及质检结果通过的候选构建产物作为目标构建产物。
8.一种投产装置,其特征在于,包括:
流水线创建模块,用于依据待投产代码工程以及至少一个候选投产流水线模板,确定目标流水线;
流水线执行模块,用于依据所述目标流水线,生成所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告;
投产模块,用于依据所述待投产代码工程的至少一个候选构建产物以及候选构建产物的质检报告,对所述待投产代码工程进行投产上线。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的投产方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的投产方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792546.8A CN110490483A (zh) | 2019-08-26 | 2019-08-26 | 投产方法、装置、设备和存储介质 |
PCT/CN2020/106567 WO2021036697A1 (zh) | 2019-08-26 | 2020-08-03 | 投产方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792546.8A CN110490483A (zh) | 2019-08-26 | 2019-08-26 | 投产方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110490483A true CN110490483A (zh) | 2019-11-22 |
Family
ID=68554241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910792546.8A Pending CN110490483A (zh) | 2019-08-26 | 2019-08-26 | 投产方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110490483A (zh) |
WO (1) | WO2021036697A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021036697A1 (zh) * | 2019-08-26 | 2021-03-04 | 中国建设银行股份有限公司 | 投产方法、装置、设备和存储介质 |
CN112581099A (zh) * | 2020-12-25 | 2021-03-30 | 中国建设银行股份有限公司 | 一种投产方案的获取方法、装置及电子设备 |
CN112633823A (zh) * | 2020-12-15 | 2021-04-09 | 中国建设银行股份有限公司 | 投产进度实时跟踪方法、存储介质及计算机设备 |
CN113052707A (zh) * | 2021-04-30 | 2021-06-29 | 中国工商银行股份有限公司 | 一种应用投产方法、装置、计算机设备和存储介质 |
CN115421775A (zh) * | 2022-09-06 | 2022-12-02 | 中国建设银行股份有限公司 | 数据处理方法、装置及电子设备、存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144092A (zh) * | 2013-03-14 | 2015-12-09 | 微软技术许可有限责任公司 | 软件发布工作流管理 |
CN106325883A (zh) * | 2016-08-31 | 2017-01-11 | 中国建设银行股份有限公司 | 一种行业业务领域信息***的开发方法及*** |
CN107621963A (zh) * | 2017-09-21 | 2018-01-23 | 深圳市买买提乐购金融服务有限公司 | 一种软件部署方法、软件部署***及电子设备 |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线***及其方法 |
CN109710524A (zh) * | 2018-12-19 | 2019-05-03 | 上海华兴数字科技有限公司 | 一种自动测试方法、***和计算机存储介质 |
CN109800016A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 工程自动部署方法、装置、计算机设备和存储介质 |
CN110018964A (zh) * | 2019-04-12 | 2019-07-16 | 广东电网有限责任公司信息中心 | 一种面向电力行业研发测试流水线构建方法 |
US20190243742A1 (en) * | 2018-02-02 | 2019-08-08 | Bank Of America Corporation | Smart tool for enterprise-wide software integration and deployment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100235807A1 (en) * | 2009-03-16 | 2010-09-16 | Hitachi Data Systems Corporation | Method and system for feature automation |
IN2013CH04617A (zh) * | 2013-10-14 | 2015-04-24 | Cognizant Technology Solutions India Pvt Ltd | |
CN104267938B (zh) * | 2014-09-16 | 2018-02-23 | 福建新大陆软件工程有限公司 | 一种流式计算的应用快速开发部署的方法及装置 |
CN110490483A (zh) * | 2019-08-26 | 2019-11-22 | 中国建设银行股份有限公司 | 投产方法、装置、设备和存储介质 |
-
2019
- 2019-08-26 CN CN201910792546.8A patent/CN110490483A/zh active Pending
-
2020
- 2020-08-03 WO PCT/CN2020/106567 patent/WO2021036697A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144092A (zh) * | 2013-03-14 | 2015-12-09 | 微软技术许可有限责任公司 | 软件发布工作流管理 |
CN106325883A (zh) * | 2016-08-31 | 2017-01-11 | 中国建设银行股份有限公司 | 一种行业业务领域信息***的开发方法及*** |
CN107621963A (zh) * | 2017-09-21 | 2018-01-23 | 深圳市买买提乐购金融服务有限公司 | 一种软件部署方法、软件部署***及电子设备 |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线***及其方法 |
US20190243742A1 (en) * | 2018-02-02 | 2019-08-08 | Bank Of America Corporation | Smart tool for enterprise-wide software integration and deployment |
CN109800016A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 工程自动部署方法、装置、计算机设备和存储介质 |
CN109710524A (zh) * | 2018-12-19 | 2019-05-03 | 上海华兴数字科技有限公司 | 一种自动测试方法、***和计算机存储介质 |
CN110018964A (zh) * | 2019-04-12 | 2019-07-16 | 广东电网有限责任公司信息中心 | 一种面向电力行业研发测试流水线构建方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021036697A1 (zh) * | 2019-08-26 | 2021-03-04 | 中国建设银行股份有限公司 | 投产方法、装置、设备和存储介质 |
CN112633823A (zh) * | 2020-12-15 | 2021-04-09 | 中国建设银行股份有限公司 | 投产进度实时跟踪方法、存储介质及计算机设备 |
CN112581099A (zh) * | 2020-12-25 | 2021-03-30 | 中国建设银行股份有限公司 | 一种投产方案的获取方法、装置及电子设备 |
CN113052707A (zh) * | 2021-04-30 | 2021-06-29 | 中国工商银行股份有限公司 | 一种应用投产方法、装置、计算机设备和存储介质 |
CN115421775A (zh) * | 2022-09-06 | 2022-12-02 | 中国建设银行股份有限公司 | 数据处理方法、装置及电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021036697A1 (zh) | 2021-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110490483A (zh) | 投产方法、装置、设备和存储介质 | |
US20180173606A1 (en) | Hybrid testing automation engine | |
US11561772B2 (en) | Low-code development platform | |
JP5197688B2 (ja) | 統合環境生成器 | |
US7761786B2 (en) | Reusable XPath validation expressions | |
US7886284B2 (en) | Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems | |
US8949772B1 (en) | Dynamic model based software application development | |
US8601433B2 (en) | Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform | |
CN108108162A (zh) | 应用程序编程接口生成方法及装置 | |
US9026986B2 (en) | Process for development of monitoring tools | |
García-Domínguez et al. | EUnit: a unit testing framework for model management tasks | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
CN109324799A (zh) | 一种代码编译方法、计算机装置及计算机可读存储介质 | |
Fursin | Collective knowledge: organizing research projects as a database of reusable components and portable workflows with common interfaces | |
US7519947B2 (en) | Orchestration designer | |
CN100483429C (zh) | 验证操作支持***及其方法 | |
Popoola et al. | EMG: A domain-specific transformation language for synthetic model generation | |
Fursin et al. | A collective knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques | |
JP2010267023A (ja) | テストデータ生成方法及び装置及びプログラム | |
Perrouin et al. | Composing models for detecting inconsistencies: A requirements engineering perspective | |
JP2008305079A (ja) | 要求仕様自動検証方式 | |
WO2014151017A1 (en) | Method of taking a computer architecture representation and generating manufaturing method capable of manufacturing computer systems in a specification | |
US9003358B2 (en) | Method of taking a computer architecture respresentation and generating manufacturing methods capable of manufacturing a computer systems contained in a specification | |
Santiago et al. | Towards Domain-Specific Testing Languages for Software-as-a-Service. | |
US20080162502A1 (en) | System integrated flexible development process |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220921 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191122 |