CN117667192A - 一种基于Devops的持续交付方法、装置、设备及存储介质 - Google Patents
一种基于Devops的持续交付方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117667192A CN117667192A CN202311759967.3A CN202311759967A CN117667192A CN 117667192 A CN117667192 A CN 117667192A CN 202311759967 A CN202311759967 A CN 202311759967A CN 117667192 A CN117667192 A CN 117667192A
- Authority
- CN
- China
- Prior art keywords
- test
- code
- version
- version code
- determining
- 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
- 238000002716 delivery method Methods 0.000 title claims abstract description 26
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 230000002459 sustained effect Effects 0.000 title claims abstract description 18
- 238000012360 testing method Methods 0.000 claims abstract description 133
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 34
- 238000011990 functional testing Methods 0.000 claims abstract description 16
- 238000004806 packaging method and process Methods 0.000 claims abstract description 11
- 238000007689 inspection Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 20
- 230000002085 persistent effect Effects 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 claims description 5
- 238000012035 user acceptance test Methods 0.000 description 24
- 238000000034 method Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 18
- 230000018109 developmental process Effects 0.000 description 16
- 238000011161 development Methods 0.000 description 14
- 230000010354 integration Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- G06F8/36—Software reuse
-
- 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
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Devops的持续交付方法、装置、设备及存储介质。通过获取持续集成交付信号,持续集成交付信号为提交版本代码至代码库自动触发;对版本代码进行编译和质量检查;确定版本代码质量检查通过,将版本代码进行打包和构建镜像;对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,自动化测试包括UI自动化测试和接口自动化测试;确定版本代码功能测试完成,生成功能测试报告;确定版本代码UAT测试完成,生成UAT测试报告;获取发布信号,发布新版本,确定发布成功。通过本发明,提高了软件交付的效率,实现了较为频繁的发版;降低发版风险,版本可以回溯,如发生故障,可及时回滚,提高了发布的成功率。
Description
技术领域
本发明属于计算机软件技术领域,具体涉及一种基于Devops的持续交付方法、装置、设备及存储介质。
背景技术
软件项目开发都需要经过设计、开发、测试、部署几个步骤,但在如今许多大型的软件开发中,传统的瀑布开发模式和敏捷开发模式已经不再适用了,为了解决多人协同开发、多机器等软件项目开发过程中的问题,微服务架构和Devops的开发模式逐渐流行起来。微服务架构是将一个大的项目拆分解耦,以多个小项目的形式单独部署。Devops则是为了解决开发、测试、运维人员之间的工作冲突,使构建、测试、软件发布得以快速、频繁以及更加稳定地进行。微服务架构和Devops的开发模式的核心是自动化的持续集成(CI)和持续交付(CD)。
Jenkins是一款开源的CI/CD工具,具有自动化构建、测试、部署等功能,支持分布式构建和丰富的扩展插件,被广泛运用于devops系统中。
申请人在现有的持续交付的运营过程中发现,软件交付率低,交付周期长,且发版风险大。
发明内容
本发明的目的是要解决上述的技术问题,提供一种基于Devops的持续交付方法、装置、设备及存储介质。
为了解决上述问题,本发明按以下技术方案予以实现的:
根据本发明的一方面,提供了一种基于Devops的持续交付方法,包括:
获取持续集成交付信号,所述持续集成交付信号为提交版本代码至代码库自动触发;
对所述版本代码进行编译和质量检查;
确定所述版本代码质量检查通过,将所述版本代码进行打包和构建镜像;
对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,所述自动化测试包括UI自动化测试和接口自动化测试;
确定所述版本代码功能测试完成,生成功能测试报告;
确定所述版本代码UAT测试完成,生成UAT测试报告;
获取发布信号,发布新版本,确定发布成功。
根据本发明的另一方面,提供了一种基于Devops的持续交付装置,包括:
获取信号模块,用于获取持续集成交付信号,所述持续集成交付信号为提交版本代码至代码库自动触发;
检查模块,用于对所述版本代码进行编译和质量检查;
确定检查通过模块,用于确定所述版本代码质量检查通过,将所述版本代码进行打包和构建镜像;
自动化测试模块,用于对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,所述自动化测试包括UI自动化测试和接口自动化测试;
功能测试模块,用于确定所述版本代码功能测试完成,生成功能测试报告;
UAT测试模块,用于确定所述版本代码UAT测试完成,生成UAT测试报告;
发布模块,用于获取发布信号,发布新版本,确定发布成功。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例所述的基于Devops的持续交付方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本发明实施例所述的基于Devops的持续交付方法。
本发明实施例中,通过获取持续集成交付信号,持续集成交付信号为提交版本代码至代码库自动触发;对版本代码进行编译和质量检查;确定版本代码质量检查通过,将版本代码进行打包和构建镜像;对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,自动化测试包括UI自动化测试和接口自动化测试;确定版本代码功能测试完成,生成功能测试报告;确定版本代码UAT测试完成,生成UAT测试报告;获取发布信号,发布新版本,确定发布成功。通过本发明,提高了软件交付的效率,实现了较为频繁的发版;将发布变成常规化的工作,通过自动化部署降低由于认为操作带来的发版故障;降低发版风险,版本可以回溯,如发生故障,可及时回滚,提高了发布的成功率;需求的交付周期大为缩短,提高了业务部门以及客户的满意度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
图1是本发明实施例的一种基于Devops的持续交付方法的流程图;
图2是本发明实施例的一种基于Devops的持续交付方法的示例图;
图3是本发明实施例的一种基于Devops的持续交付装置的结构示意图;
图4是本发明实施例的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
微服务架构是将一个大的项目拆分解耦,以多个小项目的形式单独部署。Devops则是为了解决开发、测试、运维人员之间的工作冲突,使构建、测试、软件发布得以快速、频繁以及更加稳定地进行。微服务架构和Devops的开发模式的核心是自动化的持续集成(CI)和持续交付(CD)。
其中,持续集成是指开发人员将代码频繁地提交到版本控制系统,并进行自动化构建、测试和部署操作。这样可以及时发现和解决代码错误,以及保证软件的稳定性和可靠性。
持续交付是在持续集成的基础上,实现自动化部署和测试。通过不断地自动化流程,可以优化软件交付的过程,缩短交付时间,并减少人为错误,提高软件质量和可靠性。
总的来说,持续集成是持续交付的基础,持续交付是DevOps的核心工程实践。
目前,市场上的DevOps持续集成的系统一般付费使用,价格较高,可能会给企业带来较高的运营成本。并且,持续交付系统存在与现有的系统的集成问题。尤其是目前企业的软件服务大多部署在云端,很多软件在部署上,对多云部署的支持的力度不够。因此,可能存在一些安全风险。在软件交付的过程中,还存在一些敏感的数据和信息,如订单数据、客户数据等,如果数据安全措施不到位,可能会引发数据安全问题。
为此,本发明的目的是提供一种提高软件发布效率,降低发版风险,将发布变成常规化的工作,以及缩短需求的交付周期的持续交付方法。
图1是本发明实施例的一种基于Devops的持续交付方法的流程图,本实施例可适用于在发布新版本的情况,该方法可以由一种基于Devops的持续交付装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于电子设备中。如图1所示,该方法包括:
步骤101、获取持续集成交付信号。
其中,持续集成交付信号为提交版本代码至代码库自动触发。
开发人员将新版本的代码提交到GitLab代码库的主干上将自动触发持续集成。
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
持续集成系统通过Jenkins技术对这次提交做出响应。
Jenkins是一个开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
其中,构建工具是一个把源代码生成可执行应用程序的过程自动化的程序,构建包括编译、连接跟把代码打包成可用的或可执行的形式。
步骤102、对版本代码进行编译和质量检查。
其中,质量检查包括单元测试、代码规范检查、安全扫描和源代码重复率扫描。
在一个具体实施例中,持续集成系统触发流水线的实例,开始编译代码、运行单元测试、执行代码规范检查、安全扫描、源代码重复率扫描,创建软件的二进制包。
持续集成流水线是一种软件开发时间。如,当开发提交代码后,都会触发流水线执行对应的步骤,这些步骤通常包含扫描检查、构建、测试、部署等环节。如果提交的代码不满足流水线上设置的检查时,流水线的执行就会失败,不允许代码合入仓库。
编译代码即将编写的源代码(提交的版本代码)“翻译”成计算机可以识别的二进制格式,它们以目标文件的形式存在。
单元测试是指对软件中的最小可测试单元进行检查和验证。单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
代码规范检查是编程中非常重要的一环,它能有效提高代码的可读性、可维护性和可复用性。例如,命名规范、缩进和空格、代码注释等都属于代码规范。
代码重复率扫描能够帮助开发人员识别和消除代码中的冗余部分,提高代码的质量和可维护性。
二进制包是指可执行代码的集合,例如,NET程序集。有时候代码不需要编译,那么这种情况下,二进制是所有文件的集合。
步骤103、确定版本代码质量检查通过,将版本代码进行打包和构建镜像。
具体的,将可执行的代码打包成可执行文件,将构建的jar包构建测试环境、UAT环境和生产环境的镜像。
其中,可执行文件指的是可以由操作系统进行加载执行的文件。构建包括编译、连接跟把代码打包成可用的或可执行的形式。
在一个具体实施例中,在单元测试和代码规范检查、安全扫描、源代码重复率扫描等均通过后,则将可执行的代码打包为可执行文件,并放在制品库中。Jenkins将构建的jar包或者war包构建测试环境、UAT环境、生产环境的镜像。
其中,制品库是持续集成流程中的重要组成部分,主要用来存储和管理构建过程中产生的各种制品,如二进制可执行文件、库文件等。
在本发明实施例中,包括制品库管理,主要包括:
(1)制品存储和管理:制品库主要用于存储和管理构建过程中产生的各种制品,包括可执行文件、库文件,并进行访问控制、安全扫描等。
(2)版本控制:制品库可以管理制品的版本信息,包括版本号、发布时间、负责人等信息。这样可以方便跟踪和管理不同版本之间的差异以及进行版本的发布和回滚操作。
(3)依赖分析:制品库可以分析制品之间的依赖关系,帮助运维人员了解不同制品之间的关联和影响以及不同制品的前后发布依赖关系。
步骤104、对版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告。
其中,自动化测试包括UI自动化测试和接口自动化测试。
具体的,当版本代码自动化测试完成后,发布单状态为待功能测试,发布单状态为版本代码提测后对应的测试状态。
在一个具体实施例中,代码提测后,部署在测试环境后,执行自动化测试任务来确保版本的稳定性。自动化测试包括UI自动化和接口自动化测试。自动化测试任务执行完成后系统自动生成自动化测试报告。系统上对应的发布单的状态流转为“待功能测试”。
本发明实施例中,包含发布管理模块。其中,发布单实在发布管理功能模块中创建的。发布单创建的具体步骤是产品经理在发布前制定发布计划,确定要发布的需求。建立发布单后,需求提测后会直接在对应的发布单中进行状态的同步。
具体的,发布单的内容主要包括:计划发布时间、需求、发布的开发负责人、测试负责人、涉及的后台服务和数据库配置等。发布单管理的作用是将需求提测到需求上线的整个流程打通,实时进行状态的同步。
在一个具体实施例中,发布管理模块包括:
(1)发布单管理。系统将提测、发布的流程通过发布单的状态进行处理。开发、测试、产品和运维人员可以线上协作,减少线下的沟通成本。
(2)发布窗口管理。系统控制可以发布的常规窗口以及紧急发布窗口。其中常规发布窗口定义为每周二和每周四。紧急发布窗口由运维人员根据实际的紧急情况,建立紧急发布窗口。
(3)发布监控和反馈。在发布系统上对微服务的接口调用情况进行实时监控,及时发现问题,并做出回滚或者停止发版的操作。
步骤105、确定版本代码功能测试完成,生成功能测试报告。
具体的,当版本代码功能测试完成后,发布单状态为待UAT验证。
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
在一个具体实施例中,测试人员在测试环境完成功能测试(人工测试)后,系统将自动将服务部署在UAT环境,并通知测试人员进行UAT测试,对应的发布单的状态自动流转为“待UAT验证”。
步骤106、确定版本代码UAT测试完成,生成UAT测试报告。
具体的,当版本代码UAT测试完成后,发布单状态为待发布。
UAT测试也就是用户验收测试,或用户可接受测试,系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。
在一个具体实施例中,测试人员在UAT环境完成用户验收测试后,系统对应的发布单标记为“待发布”。
步骤107、获取发布信号,发布新版本,确定发布成功。
具体的,在确定新版本发布成功后,发布单状态为已发布。
在一个具体实施例中,持续集成系统从制品库中拿到已通过UAT验收的最新版本,运维人员点击“发布”按钮,将微服务其部署在生产环境。一旦发布成功,则对应的发布单的状态为“已发布”。
示例性地,如图2所示,开发人员版本控制是通过发布管理实现地。开发人员发布新版本时,提交代码、编译(创建二进制包,放入制品库管理),接着应用构建、构建镜像和单元测试。进入部署流水线管理,首先进行自动化测试,自动化测试后测试人员进行功能测试、性能测试和UAT测试,最后部署人员确定发布。实现自动部署或者自服务部署。
本发明提供了Jenkins持续集成管理(提交代码,Jenkins做出响应)、部署流水线管理(自动化测试、功能测试、UAT测试和发布)、制品库管理和发布管理来实现持续交付,使得开发人员、测试人员和运维人员能更好地协同工作,提高工作效率。
图3是本发明实施例的一种基于Devops的持续交付装置的结构示意图。如图3所示,该装置包括:
获取信号模块301,用于获取持续集成交付信号,所述持续集成交付信号为提交版本代码至代码库自动触发;
检查模块302,用于对所述版本代码进行编译和质量检查;
确定检查通过模块303,用于确定所述版本代码质量检查通过,将所述版本代码进行打包和构建镜像;
自动化测试模块304,用于对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,所述自动化测试包括UI自动化测试和接口自动化测试;
功能测试模块305,用于确定所述版本代码功能测试完成,生成功能测试报告;
UAT测试模块306,用于确定所述版本代码UAT测试完成,生成UAT测试报告;
发布模块307,用于获取发布信号,发布新版本,确定发布成功。
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,如基于Devops的持续交付方法。
在一些实施例中,基于Devops的持续交付方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的基于Devops的持续交付方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于Devops的持续交付方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时实现如本发明实施例所提供的基于Devops的持续交付方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种基于Devops的持续交付方法,其特征在于,包括:
获取持续集成交付信号,所述持续集成交付信号为提交版本代码至代码库自动触发;
对所述版本代码进行编译和质量检查;
确定所述版本代码质量检查通过,将所述版本代码进行打包和构建镜像;
对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,所述自动化测试包括UI自动化测试和接口自动化测试;
确定所述版本代码功能测试完成,生成功能测试报告;
确定所述版本代码UAT测试完成,生成UAT测试报告;
获取发布信号,发布新版本,确定发布成功。
2.根据权利要求1所述一种基于Devops的持续交付方法,其特征在于,包括:
所述质量检查包括单元测试、代码规范检查、安全扫描和源代码重复率扫描。
3.根据权利要求1所述一种基于Devops的持续交付方法,其特征在于,所述将所述版本代码进行打包和构建镜像,包括:
将可执行的代码打包成可执行文件,将构建的jar包构建测试环境、UAT环境和生产环境的镜像。
4.根据权利要求1所述一种基于Devops的持续交付方法,其特征在于,所述对所述版本代码进行自动化测试,确定自动化测试完成,包括:
当所述版本代码自动化测试完成后,发布单状态为待功能测试,所述发布单状态为版本代码提测后对应的测试状态。
5.根据权利要求4所述一种基于Devops的持续交付方法,其特征在于,所述确定所述版本代码功能测试完成,包括:
当所述版本代码功能测试完成后,发布单状态为待UAT验证。
6.根据权利要求5所述一种基于Devops的持续交付方法,其特征在于,确定所述版本代码UAT测试完成,包括:
当所述版本代码UAT测试完成后,发布单状态为待发布。
7.根据权利要求6所述一种基于Devops的持续交付方法,其特征在于,所述确定发布成功,包括:
确定新版本发布成功后,发布单状态为已发布。
8.一种基于Devops的持续交付装置,其特征在于,包括:
获取信号模块,用于获取持续集成交付信号,所述持续集成交付信号为提交版本代码至代码库自动触发;
检查模块,用于对所述版本代码进行编译和质量检查;
确定检查通过模块,用于确定所述版本代码质量检查通过,将所述版本代码进行打包和构建镜像;
自动化测试模块,用于对所述版本代码进行自动化测试,确定自动化测试完成,生成自动化测试报告,所述自动化测试包括UI自动化测试和接口自动化测试;
功能测试模块,用于确定所述版本代码功能测试完成,生成功能测试报告;
UAT测试模块,用于确定所述版本代码UAT测试完成,生成UAT测试报告;
发布模块,用于获取发布信号,发布新版本,确定发布成功。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的基于Devops的持续交付方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现权利要求1-7中任一项所述的基于Devops的持续交付方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311759967.3A CN117667192A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Devops的持续交付方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311759967.3A CN117667192A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Devops的持续交付方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667192A true CN117667192A (zh) | 2024-03-08 |
Family
ID=90084538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311759967.3A Pending CN117667192A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Devops的持续交付方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667192A (zh) |
-
2023
- 2023-12-19 CN CN202311759967.3A patent/CN117667192A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960643B (zh) | 一种代码测试方法和装置 | |
US8984489B2 (en) | Quality on submit process | |
AU2012202093B2 (en) | Modular script designer for next generation testing system | |
AU2012202188B2 (en) | Automation controller for next generation testing system | |
AU2012202261B2 (en) | Test data supply chain manager for an integrated testing platform | |
US9286193B2 (en) | Prioritization and assignment manager for an integrated testing platform | |
CN102880543B (zh) | 用于集成测试平台的测试数据供应链管理器 | |
CN111309343B (zh) | 一种开发部署方法及装置 | |
Ali et al. | A Comprehensive Study on Automated Testing with The Software Lifecycle | |
CN117667192A (zh) | 一种基于Devops的持续交付方法、装置、设备及存储介质 | |
Poornalinga et al. | Continuous integration, deployment and delivery automation in AWS cloud infrastructure | |
CN114693116A (zh) | 代码评审有效性的检测方法及装置、电子设备 | |
Xie et al. | Design and implementation of bank financial business automation testing framework based on QTP | |
Mousaei | Review on role of quality assurance in waterfall and agile software development | |
CN112328473A (zh) | 代码自动化集成测试方法、装置及电子设备 | |
TWI735511B (zh) | 代碼提交方法和設備 | |
CN102841842A (zh) | 用于下一代测试系统的自动化控制器 | |
Nagaraj et al. | A Study on Defect Identification in Sofware Engineering | |
CN115878168A (zh) | 一种软件开发方法、装置、电子设备及存储介质 | |
CN115495382A (zh) | 一种自动化测试系统、自动化测试方法、设备及存储介质 | |
CN116909925A (zh) | 一种基于敏捷迭代的测试流程管理方法及管理系统 | |
KR101919489B1 (ko) | 신용평가 시스템에서의 룰 매니저 방법 및 시스템, 그리고 이 방법을 실행시키기 위한 프로그램을 저장한 기록매체 | |
CN115238212A (zh) | 一种页面指定元素检测替换方法、装置、设备及存储介质 | |
CN116414703A (zh) | 一种代码质量管控方法、装置、电子设备及存储介质 | |
CN117221158A (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 |