CN116400987A - 持续集成方法、装置、电子设备及存储介质 - Google Patents
持续集成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116400987A CN116400987A CN202310659257.7A CN202310659257A CN116400987A CN 116400987 A CN116400987 A CN 116400987A CN 202310659257 A CN202310659257 A CN 202310659257A CN 116400987 A CN116400987 A CN 116400987A
- Authority
- CN
- China
- Prior art keywords
- continuous integration
- micro
- service orchestration
- orchestration platform
- sustainable
- 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.)
- Granted
Links
- 230000010354 integration Effects 0.000 title claims abstract description 225
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012360 testing method Methods 0.000 claims abstract description 69
- 230000002085 persistent effect Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002459 sustained effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 22
- 238000010276 construction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种持续集成方法、装置、电子设备及存储介质,属于软件开发技术领域,所述方法包括:确定持续集成任务;通过可持久化有限状态机基于所述持续集成任务来调用微服务编排平台;所述微服务编排平台获取目标代码资源,并通过持续集成工具利用所述目标代码资源进行持续集成;在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成。本发明的持续集成方法,通过构建可持久化有限状态机、微服务编排平台以及持续集成工具来进行持续集成系统的构建,可以实现持续集成流程的分布式部署,且可以针对每个持续集成流程进行单独的审批过程,节约了计算资源,提高了持续集成的效率。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种持续集成方法、装置、电子设备及存储介质。
背景技术
持续集成(Continuous Integration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,每次集成都通过自动化的构建如编译、发布以及自动化测试来验证,从而尽早地发现集成错误。一个完整的CI流水线能够对日常研发工作提供便捷、自动化的构建、测试以及集成流程。无CI时期多数人会选择手动打包、登录到服务器、手动部署、测试并上线,但有CI流水线就可以让上述过程变得自动化,无需耗费更多精力在这些非研发功能上面。
在很多场景下,CI 作为一种自动化的能力而展现,如将编译、单元测试、集成测试、自动化端到端测试编排到一起,有时还可以加入各种结果的卡点或者审批,以便于控制整个持续集成流程。以便于控制整个持续集成流程。但多数时候由于和运行时环境联系比较紧密,如编译时的环境、自动化端到端测试的环境,很难保证两者的环境是相同的,此时就需要保证 CI 的解决方案能够将多个不同运行环境的平台进行整合,并且在整合过程中尽可能的减少无用的资源消耗,防止过多的性能浪费在无用的事情上。因此,如何提高持续集成过程中减少不同平台操作的资源消耗以提高整个流程的效率是一个亟需解决的问题。
发明内容
本发明提供一种持续集成方法、装置、电子设备及存储介质,用以解决现有技术中持续集成效率低的缺陷,实现持续集成效率的效果。
本发明提供一种持续集成方法,包括:
确定持续集成任务;
通过可持久化有限状态机基于所述持续集成任务来调用微服务编排平台;
通过所述微服务编排平台获取目标代码资源,并通过持续集成工具利用所述目标代码资源进行持续集成;所述目标代码资源包括通过所述可持久化有限状态机接收到的用户输入的代码资源以及所述微服务编排平台中缓存的代码资源;所述可持久化有限状态机、所述微服务编排平台与所述持续集成工具运行于不同的虚拟容器中;
在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成。
根据本发明提供的一种持续集成方法,所述在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成,包括:
将所述目标测试审批节点的测试通过率通过所述微服务编排平台发送至用户操作终端;所述用户操作终端与所述可持久化有限状态机关联;
通过所述用户操作终端接收所述用户的审批通过输入;
通过所述可持久化有限状态机基于所述审批通过输入切换工作状态,以使得所述微服务编排平台基于所述可持久化有限状态机切换后的工作状态控制所述持续集成工具进行持续集成。
根据本发明提供的一种持续集成方法,所述在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成,包括:
将所述目标测试审批节点的测试通过率发送至所述微服务编排平台;
通过所述微服务编排平台将所述目标测试审批节点的测试通过率与预存的测试通过率进行对比,得到对比通过结果;
通过所述微服务编排平台基于所述对比通过结果,控制所述持续集成工具进行持续集成。
根据本发明提供的一种持续集成方法,在所述通过所述持续集成工具进行持续集成之后,所述方法还包括:
通过所述持续集成工具获取持续集成日志;
将所述持续集成日志通过所述可持久化有限状态机进行展示。
根据本发明提供的一种持续集成方法,所述微服务编排平台存储有多个触发指令,各触发指令用于执行所述可持久化有限状态机切换至不同的工作状态。
根据本发明提供的一种持续集成方法,所述微服务编排平台与所述持续集成工具的应用程序接口进行通信连接。
根据本发明提供的一种持续集成方法,在所述确定持续集成任务之前,所述方法包括:
在容器云平台中创建虚拟容器组;
将所述持续集成任务包含的所有持续集成流程部署在所述虚拟容器组包含的多个容器中,以在各虚拟容器中执行所述持续集成流程。
本发明还提供一种持续集成装置,包括:
第一处理模块,用于确定持续集成任务;
第二处理模块,用于通过可持久化有限状态机基于所述持续集成任务来调用微服务编排平台;
第三处理模块,用于通过所述微服务编排平台获取目标代码资源,并通过持续集成工具利用所述目标代码资源进行持续集成;所述目标代码资源包括通过所述可持久化有限状态机接收到的用户输入的代码资源以及所述微服务编排平台中缓存的代码资源;所述可持久化有限状态机、所述微服务编排平台与所述持续集成工具运行于不同的虚拟容器中;
第四处理模块,用于在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述持续集成方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述持续集成方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述持续集成方法。
本发明提供的持续集成方法、装置、电子设备及存储介质,通过构建可持久化有限状态机、微服务编排平台以及持续集成工具来进行持续集成系统的构建,可以实现持续集成流程的分布式部署,且可以针对每个持续集成流程进行单独的审批过程,节约了计算资源,提高了持续集成的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的持续集成方法的流程示意图之一;
图2是本发明提供的持续集成方法的流程示意图之二;
图3是本发明提供的持续集成装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图4描述本发明的持续集成方法、装置、电子设备及存储介质。
如图1所示,本发明实施例的持续集成方法主要包括步骤110、步骤120、步骤130以及步骤140。
步骤110,确定持续集成任务。
步骤120,通过可持久化有限状态机基于持续集成任务来调用微服务编排平台。
步骤130,通过微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成。
步骤140,在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成。
需要说明的是,目标代码资源包括通过可持久化有限状态机接收到的用户输入的代码资源以及微服务编排平台中缓存的代码资源。
在一些实施例中,可以通过可持久化有限状态机所提供的用户层界面来接收用户所输入的代码资源。
在另一些实施例中,还可以直接调用微服务编排平台中缓存的代码资源。在此种情况下,可以根据持续集成任务,直接从微服务平台中调用相关代码资源,或者,还可以通过可持久化有限状态机所提供的用户层界面来接收用户的调用指令来调取相关代码资源。
当然,在一些实施例中,还可以结合用户输入的代码资源以及微服务平台中调用的相关代码资源来完成持续集成任务。
在一些实施例中,持续集成工具可以是Jenkins。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins是一个可扩展的持续集成引擎,能够持续、自动的构件软件项目,并监控一些定时执行的任务。
Jenkins易于安装,只需要部署在服务器中即可,并且易于配置,通过其提供的界面进行软件构建的配置,在构建完成后能够对测试人员进行通知并发送测试报告。目前持续集成已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。
当Jenkins配置完成后,Jenkins会根据预先制定的时间表,或针对某一特定时间,对目标项目的软件进行构建。Jenkins能够持续的获取新增或修改签入的源代码。也就是说,当软件团队需要周期性的检查新增或修改后的代码时,Jenkins会不断的确认新代码是否会破坏原有软件的成功构建,构建后执行预先制定的测试规则,并发送通知给相应测试人员。
Jenkins在使用时,开发者提交代码资源到源代码仓库,Jenkins或为每一个软件项目创建一个单独的工作区域,当触发或请求构建一次新的构建时,Jenkins会将源代码仓库中的源码放置相应的工作区。Jenkins对工作区内的源码进构建,构建完成后Jenkins向相应测试人员发送邮件通知,如果构建成功,则将构建产物打包并转移到应用服务器。
可持久化有限状态机是基于状态机构建的,状态机表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在实际运行环境中,状态机的当前状态往往都是从持久化介质中实时获取的,例如可以用过接口实现读写当前状态机的状态,进而实现可持久化。
在本实施方式中,考虑到持续集成流程节点的审批,从状态机的角度,可以以状态变化和流程运转为角度切入看问题,所以可持久化有限状态机对于流程性为主轴的持续集成十分适用。例如,可以采用可持久化有限状态机Spring Statemachine来实现本发明实施例中以流程性、状态变化为主的持续集成。
微服务编排平台是一种任务调度引擎,可以让开发者在不牺牲生产力和可靠性的情况下构建高可用的应用程序。例如,可以是采用代码执行引擎 Temporal 来构建。Temporal服务端负责以弹性的方式执行应用程序的最小逻辑单元,并且能自动处理间歇性故障和重试失败的操作,可以用来构建每个子流程的内部逻辑
在本实施方式中,可以将 Jenkins 这个通用的解决方案作为系统内的其中一个执行平台进行使用,或者将内部自建平台进行对接,通过编写每个部分的代码来达到目的。
可持久化有限状态机、微服务编排平台与持续集成工具运行于不同的虚拟容器中。
可以理解的是,虚拟容器是可以实现在一台主机上运行多个独立的操作系统的技术,而无需安装多个主机或服务器上运行。与传统的虚拟化相比,虚拟容器可以更快地创建环境并以更小的资源开销运行。因此,虚拟容器一词通常指使用容器技术在单台计算机上构建和运行多个虚拟环境的技术。
在本实施方式中,在不同的虚拟容器中分别部署可持久化有限状态机、微服务编排平台与持续集成工具可以实现快速部署。通过在虚拟容器中运行,可以最大程度上节省部署应用的时间,从而节约成本。而且虚拟容器需要更少的资源,可以提供出色的性能。对于持续集成任务,虚拟容器有利于统一管理。相比分散管理,虚拟容器提供了统一管理,有利于提高管理效率。此外,虚拟容器也拥有高度安全性和可移植性,它可以帮助用户更好地管理和完善虚拟机管理,提升安全性和可移植性,从而更有效地利用资源和投入的技术。
在一些实施例中,微服务编排平台与持续集成工具的应用程序接口进行通信连接,进而保证了持续集成过程中通信渠道的畅通。
在一些实施例中,在确定持续集成任务之前,本发明实施例的持续集成方法还包括:在容器云平台中创建虚拟容器组;将持续集成任务包含的所有持续集成流程部署在虚拟容器组包含的多个容器中,以在各虚拟容器中执行持续集成流程。
需要说明的是,除了在不同的虚拟容器中分别部署可持久化有限状态机、微服务编排平台与持续集成工具以外,针对持续集成工具,可以把不同的持续集成流程分别部署于不同的虚拟容器中。
可以理解的是,可以根据持续集成的流程任务节点来在容器云平台中创建虚拟容器组,用于当前持续集成任务的实行
换言之,将持续集成任务包含的所有持续集成流程部署在虚拟容器组包含的多个容器中,以在各虚拟容器中执行持续集成流程。
在本实施方式中,通过在不同的虚拟容器中执行不同的持续集成流程,可以将不同持续集成流程的节点进行分隔,进而便于不同的虚拟容器可以与可持久化有限状态机以及微服务编排平台来进行直接通信,提升可持久化有限状态机以及微服务编排平台的流程审批效率。
现有技术中,若使用业内最通用的方案Jenkins自带的功能来做此流程,由于Jenkins的流程基于机器资源的持续运行时,在审批完成之前,不会释放之前构建时使用的机器空间,会导致在审批流程中一直占用着构建机器的资源,导致机器资源的浪费。而类似的其他解决方案对于此场景的缺点也类似,虽然在纯粹的自动化流程中很易用,但一旦加入了静态的流程,需要引用其他的静态审批平台来实现人工审批,审批时人为的等待会导致资源无法充分利用,导致资源的浪费。
在本实施方式中,可持久化有限状态机基于持续集成任务来调用微服务编排平台,可持久化有限状态机负责整个流程的实现与流转,而微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成,构建了每个持续集成流程内部的逻辑,而在需要进行审批的节点,分布于各个虚拟容器的自动集成任务可以分别进行单独的审批操作,微服务编排平台可以自动确定目标测试审批节点是否通过,进而能使得需要跨不同平台所能实现的功能直接自动实现,提高了持续集成的效率。
根据本发明实施例提供的持续集成方法,通过构建可持久化有限状态机、微服务编排平台以及持续集成工具来进行持续集成系统的构建,可以实现持续集成流程的分布式部署,且可以针对每个持续集成流程进行单独的审批过程,节约了计算资源,提高了持续集成的效率。
在一些实施例中,在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成,包括以下过程。
在本实施方式中,可以将目标测试审批节点的测试通过率通过微服务编排平台发送至用户操作终端。
可以理解的是,用户操作终端与可持久化有限状态机关联。例如,可以将可持久化有限状态机关联的用户层界面设置于用户操作终端,以实现接收用户指令以及向反馈用户信息。
在此种情况下,可以通过用户操作终端接收用户的审批通过输入。可以理解的是,在接收到用户的审批通过输入后,可以将可持久化有限状态机的相关状态切换至与用户审批通过这一信息相对应的状态。
在此基础上,可以通过可持久化有限状态机基于审批通过输入切换工作状态,以使得微服务编排平台基于可持久化有限状态机切换后的工作状态控制持续集成工具进行持续集成。
在本实施方式中,可以通过可持久化有限状态机实现根据用户的输入来进行流程审批节点的审批。
需要说明的是,微服务编排平台也存储有多个触发指令,各触发指令用于执行可持久化有限状态机切换至不同的工作状态。
换言之,可持久化有限状态机可以通过切换状态控制微服务编排平台来进行不同的操作,而微服务编排平台也可以通过不同的操作来控制可持久化有限状态机切换至不同的工作状态,进而实现向用户反馈信息。
在一些实施例中,在通过持续集成工具进行持续集成之后,本发明实施例的持续集成方法还包括:通过持续集成工具获取持续集成日志;将持续集成日志通过可持久化有限状态机进行展示。
可以理解的是,持续集成工具可以将获取的持续集成日志通过微服务编排平台传输至可持久化有限状态机,可持久化有限状态机通过用户层界面来向用户进行日志的展示。
在另一些实施例中,步骤140:在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成,进一步包括步骤141、步骤142和步骤143。
步骤141,将目标测试审批节点的测试通过率发送至微服务编排平台。
步骤142,通过微服务编排平台将目标测试审批节点的测试通过率与预存的测试通过率进行对比,得到对比通过结果。
步骤143,通过微服务编排平台基于对比通过结果,控制持续集成工具进行持续集成。
可以理解的是,在目标持续集成流程完成后进行自动测试后,可以将目标测试审批节点的测试通过率发送至微服务编排平台。
微服务编排平台中配置有自动审批流程组件,其中还配置有预存的测试通过率,通过微服务编排平台将目标测试审批节点的测试通过率与预存的测试通过率进行对比,得到对比通过结果。
当目标测试审批节点的测试通过率大于或者等于预存的测试通过率时,则当前的目标测试审批节点对应的目标持续集成流程成功集成,可以继续后续流程的进行。
当目标测试审批节点的测试通过率小于预存的测试通过率时,则当前的目标测试审批节点对应的目标持续集成流程失败,可以重新当前流程,或者反馈故障以呼叫人工干预。
换言之,可以通过微服务编排平台基于对比通过结果,控制持续集成工具进行持续集成。
在本实施方式中,可以通过微服务编排平台实现流程审批节点的自动审批。
可以理解的是,Jenkins是个一主多从的结构,而且本身的数据也以文本文件的形式存储在 Master 节点的本地硬盘上,无论从面向存储角度、还是面向执行流程的角度来说,它都不具备一个高可用、易伸缩的系统的特征。
在本发明实施例中,由于基于关系性数据库实现的可持久化有限状态机和专注于分布式代码执行引擎的微服务编排平台Temporal,即可将其内部流程无状态化,使用Temporal自带的负载均衡能力来自动协调压力到每个运行的虚拟容器中。基于Temporal的同时,也代表着使用了它的回溯特性,此特性可将某一个未完成却因为某些原因失去了运行环境的流程重复放映到处于另一个运行环境的相同逻辑的流程中,这有利于整体系统从完全重启后的状态恢复,或者当被部署在某个集群因网络问题导致的故障恢复后的状态转移。
下面对本发明提供的持续集成装置进行描述,下文描述的持续集成装置与上文描述的持续集成方法可相互对应参照。
如图3所示,本发明实施例的持续集成装置主要包括第一处理模块310、第二处理模块320、第三处理模块330以及第四处理模块340。
第一处理模块310用于确定持续集成任务;
第二处理模块320用于通过可持久化有限状态机基于持续集成任务来调用微服务编排平台;
第三处理模块330用于通过微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成;目标代码资源包括通过可持久化有限状态机接收到的用户输入的代码资源以及微服务编排平台中缓存的代码资源;可持久化有限状态机、微服务编排平台与持续集成工具运行于不同的虚拟容器中;
第四处理模块340用于在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成。
根据本发明实施例提供的持续集成装置,通过构建可持久化有限状态机、微服务编排平台以及持续集成工具来进行持续集成系统的构建,可以实现持续集成流程的分布式部署,且可以针对每个持续集成流程进行单独的审批过程,节约了计算资源,提高了持续集成的效率。
在一些实施例中,第四处理模块340还用于将目标测试审批节点的测试通过率通过微服务编排平台发送至用户操作终端;用户操作终端与可持久化有限状态机关联;通过用户操作终端接收用户的审批通过输入;通过可持久化有限状态机基于审批通过输入切换工作状态,以使得微服务编排平台基于可持久化有限状态机切换后的工作状态控制持续集成工具进行持续集成。
在一些实施例中,第四处理模块340还用于将目标测试审批节点的测试通过率发送至微服务编排平台;通过微服务编排平台将目标测试审批节点的测试通过率与预存的测试通过率进行对比,得到对比通过结果;通过微服务编排平台基于对比通过结果,控制持续集成工具进行持续集成。
在一些实施例中,第四处理模块340还用于通过持续集成工具获取持续集成日志;将持续集成日志通过可持久化有限状态机进行展示。
在一些实施例中,微服务编排平台存储有多个触发指令,各触发指令用于执行可持久化有限状态机切换至不同的工作状态。
在一些实施例中,微服务编排平台与持续集成工具的应用程序接口进行通信连接。
在一些实施例中,第一处理模块310还用于在容器云平台中创建虚拟容器组;将持续集成任务包含的所有持续集成流程部署在虚拟容器组包含的多个容器中,以在各虚拟容器中执行持续集成流程。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行持续集成方法,该方法包括:确定持续集成任务;通过可持久化有限状态机基于持续集成任务来调用微服务编排平台;通过微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成;目标代码资源包括通过可持久化有限状态机接收到的用户输入的代码资源以及微服务编排平台中缓存的代码资源;可持久化有限状态机、微服务编排平台与持续集成工具运行于不同的虚拟容器中;在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的持续集成方法,该方法包括:确定持续集成任务;通过可持久化有限状态机基于持续集成任务来调用微服务编排平台;通过微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成;目标代码资源包括通过可持久化有限状态机接收到的用户输入的代码资源以及微服务编排平台中缓存的代码资源;可持久化有限状态机、微服务编排平台与持续集成工具运行于不同的虚拟容器中;在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的持续集成方法,该方法包括:确定持续集成任务;通过可持久化有限状态机基于持续集成任务来调用微服务编排平台;通过微服务编排平台获取目标代码资源,并通过持续集成工具利用目标代码资源进行持续集成;目标代码资源包括通过可持久化有限状态机接收到的用户输入的代码资源以及微服务编排平台中缓存的代码资源;可持久化有限状态机、微服务编排平台与持续集成工具运行于不同的虚拟容器中;在通过微服务编排平台确定目标测试审批节点通过的情况下,通过持续集成工具进行持续集成。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种持续集成方法,其特征在于,包括:
确定持续集成任务;
通过可持久化有限状态机基于所述持续集成任务来调用微服务编排平台;
通过所述微服务编排平台获取目标代码资源,并通过持续集成工具利用所述目标代码资源进行持续集成;所述目标代码资源包括通过所述可持久化有限状态机接收到的用户输入的代码资源以及所述微服务编排平台中缓存的代码资源;所述可持久化有限状态机、所述微服务编排平台与所述持续集成工具运行于不同的虚拟容器中;
在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成。
2.根据权利要求1所述的持续集成方法,其特征在于,所述在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成,包括:
将所述目标测试审批节点的测试通过率通过所述微服务编排平台发送至用户操作终端;所述用户操作终端与所述可持久化有限状态机关联;
通过所述用户操作终端接收所述用户的审批通过输入;
通过所述可持久化有限状态机基于所述审批通过输入切换工作状态,以使得所述微服务编排平台基于所述可持久化有限状态机切换后的工作状态控制所述持续集成工具进行持续集成。
3.根据权利要求1所述的持续集成方法,其特征在于,所述在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成,包括:
将所述目标测试审批节点的测试通过率发送至所述微服务编排平台;
通过所述微服务编排平台将所述目标测试审批节点的测试通过率与预存的测试通过率进行对比,得到对比通过结果;
通过所述微服务编排平台基于所述对比通过结果,控制所述持续集成工具进行持续集成。
4.根据权利要求1所述的持续集成方法,其特征在于,在所述通过所述持续集成工具进行持续集成之后,所述方法还包括:
通过所述持续集成工具获取持续集成日志;
将所述持续集成日志通过所述可持久化有限状态机进行展示。
5.根据权利要求2所述的持续集成方法,其特征在于,所述微服务编排平台存储有多个触发指令,各触发指令用于执行所述可持久化有限状态机切换至不同的工作状态。
6.根据权利要求1所述的持续集成方法,其特征在于,所述微服务编排平台与所述持续集成工具的应用程序接口进行通信连接。
7.根据权利要求1所述的持续集成方法,其特征在于,在所述确定持续集成任务之前,所述方法包括:
在容器云平台中创建虚拟容器组;
将所述持续集成任务包含的所有持续集成流程部署在所述虚拟容器组包含的多个容器中,以在各虚拟容器中执行所述持续集成流程。
8.一种持续集成装置,其特征在于,包括:
第一处理模块,用于确定持续集成任务;
第二处理模块,用于通过可持久化有限状态机基于所述持续集成任务来调用微服务编排平台;
第三处理模块,用于通过所述微服务编排平台获取目标代码资源,并通过持续集成工具利用所述目标代码资源进行持续集成;所述目标代码资源包括通过所述可持久化有限状态机接收到的用户输入的代码资源以及所述微服务编排平台中缓存的代码资源;所述可持久化有限状态机、所述微服务编排平台与所述持续集成工具运行于不同的虚拟容器中;
第四处理模块,用于在通过所述微服务编排平台确定目标测试审批节点通过的情况下,通过所述持续集成工具进行持续集成。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述持续集成方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述持续集成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310659257.7A CN116400987B (zh) | 2023-06-06 | 2023-06-06 | 持续集成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310659257.7A CN116400987B (zh) | 2023-06-06 | 2023-06-06 | 持续集成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116400987A true CN116400987A (zh) | 2023-07-07 |
CN116400987B CN116400987B (zh) | 2023-08-18 |
Family
ID=87012680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310659257.7A Active CN116400987B (zh) | 2023-06-06 | 2023-06-06 | 持续集成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116400987B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724725A (zh) * | 2024-02-05 | 2024-03-19 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、系统和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552644A (zh) * | 2020-04-28 | 2020-08-18 | 成都库珀区块链科技有限公司 | 一种基于微服务架构的软件持续集成方法 |
CN112379884A (zh) * | 2020-11-13 | 2021-02-19 | 李斌 | 基于Spark和并行内存计算的流程引擎实现方法及系统 |
CN114153427A (zh) * | 2020-09-04 | 2022-03-08 | 株式会社日立制作所 | 持续集成流水线的优化方法及系统 |
CN114443050A (zh) * | 2022-01-21 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种基于ci引擎流水线的新型日志展示方法 |
CN114490319A (zh) * | 2021-12-21 | 2022-05-13 | 博思数采科技发展有限公司 | 一种分布式持续集成自动化测试方法和系统 |
CN115827086A (zh) * | 2022-10-17 | 2023-03-21 | 北京京仪仪器仪表研究总院有限公司 | 一种基于分布式集群架构的高可用软件开发集成平台 |
-
2023
- 2023-06-06 CN CN202310659257.7A patent/CN116400987B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552644A (zh) * | 2020-04-28 | 2020-08-18 | 成都库珀区块链科技有限公司 | 一种基于微服务架构的软件持续集成方法 |
CN114153427A (zh) * | 2020-09-04 | 2022-03-08 | 株式会社日立制作所 | 持续集成流水线的优化方法及系统 |
CN112379884A (zh) * | 2020-11-13 | 2021-02-19 | 李斌 | 基于Spark和并行内存计算的流程引擎实现方法及系统 |
CN114490319A (zh) * | 2021-12-21 | 2022-05-13 | 博思数采科技发展有限公司 | 一种分布式持续集成自动化测试方法和系统 |
CN114443050A (zh) * | 2022-01-21 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种基于ci引擎流水线的新型日志展示方法 |
CN115827086A (zh) * | 2022-10-17 | 2023-03-21 | 北京京仪仪器仪表研究总院有限公司 | 一种基于分布式集群架构的高可用软件开发集成平台 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724725A (zh) * | 2024-02-05 | 2024-03-19 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、系统和存储介质 |
CN117724725B (zh) * | 2024-02-05 | 2024-05-03 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116400987B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389900B (zh) | 一种分布式数据库集群测试方法、装置及存储介质 | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
CN108737168B (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
US7779298B2 (en) | Distributed job manager recovery | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
US10169203B2 (en) | Test simulation for software defined networking environments | |
CN113569987A (zh) | 模型训练方法和装置 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN108243012B (zh) | 在线计费系统ocs中计费应用处理系统、方法及装置 | |
CN113609019B (zh) | 一种容器云应用跨集群部署的流水线方法及装置 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN112199355B (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
US10795793B1 (en) | Method and system for simulating system failures using domain-specific language constructs | |
CN113741958A (zh) | 一种基于云原生的软件开发交付方法及系统 | |
US11068487B2 (en) | Event-stream searching using compiled rule patterns | |
CN113419818A (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN114168252A (zh) | 信息处理系统及方法、网络方案推荐组件及方法 | |
CN111147541A (zh) | 基于参数服务器的节点处理方法、装置、设备及存储介质 | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN115185825A (zh) | 接口测试的调度方法及装置 | |
US11651257B2 (en) | Software CoBot engineering, execution, and monitoring | |
CN112445607B (zh) | 一种应用程序执行方法函数的方法及装置 | |
CN106972942B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |