CN117149665A - 持续集成方法、控制设备、持续集成系统及存储介质 - Google Patents

持续集成方法、控制设备、持续集成系统及存储介质 Download PDF

Info

Publication number
CN117149665A
CN117149665A CN202311423049.3A CN202311423049A CN117149665A CN 117149665 A CN117149665 A CN 117149665A CN 202311423049 A CN202311423049 A CN 202311423049A CN 117149665 A CN117149665 A CN 117149665A
Authority
CN
China
Prior art keywords
environment information
real
target
physical
physical device
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
Application number
CN202311423049.3A
Other languages
English (en)
Other versions
CN117149665B (zh
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.)
Xi'an Xintong Semiconductor Technology Co ltd
Original Assignee
Xi'an Xintong Semiconductor Technology Co ltd
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 Xi'an Xintong Semiconductor Technology Co ltd filed Critical Xi'an Xintong Semiconductor Technology Co ltd
Priority to CN202311423049.3A priority Critical patent/CN117149665B/zh
Publication of CN117149665A publication Critical patent/CN117149665A/zh
Application granted granted Critical
Publication of CN117149665B publication Critical patent/CN117149665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种持续集成方法、控制设备、持续集成系统及存储介质,涉及持续集成技术领域,其中,该方法包括:控制设备获取持续集成指令,并获取各物理设备的实时环境信息,根据持续集成指令以及各物理设备的实时环境信息,确定多个物理设备中的目标物理设备,向目标物理设备发送持续集成控制信息,持续集成控制信息用于指示目标物理设备基于目标物理设备上部署的编译测试程序对目标代码进行编译测试,以及,输出所述目标代码的编译测试结果。本申请根据物理设备的实时环境情况,通过远程调度的方法将编译测试的任务下发给真实的物理设备进行执行,从而还原真实的持续集成时的测试场景。

Description

持续集成方法、控制设备、持续集成系统及存储介质
技术领域
本申请涉及持续集成技术领域,具体而言,涉及一种持续集成方法、控制设备、持续集成系统及存储介质。
背景技术
持续集成是敏捷开发方法中的重要的一个实践活动。持续集成能够将代码获取、代码编译、部署安装、结果采集、分析统计等过程串接起来,实现敏捷开发的目标。由于持续集成涉及的过程复杂,因此需要使用较多的资源。因此,如何进行持续集成系统的资源调度是值得解决的问题。
目前,可以通过两种方式进行资源调度。第一种是通过调度docker容器来提供持续集成环境,第二种是通过调度虚拟机来提供持续集成环境。
但是,针对第一种方式,docker容器是操作系统层面的虚拟化,并不能支持硬件虚拟化。针对第二种方式,虚拟机的硬件设备需要支持虚拟化,并且硬件设备类的持续集成的结果取决于驱动程序的测试结果,而虚拟化出来的硬件驱动测试结果无法作为依据。因此,现有的资源调度方法存在无法还原真实的持续集成测试场景的问题。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种持续集成方法、控制设备、持续集成系统及存储介质,以解决现有技术中无法实现硬件虚拟化,且无法还原真实的持续集成测试场景的问题。
为实现上述目的,本申请采用的技术方案如下:
第一方面,本申请提供了一种持续集成方法,所述方法应用于持续集成系统中的控制设备,所述持续集成系统中包括所述控制设备以及多个物理设备,所述控制设备与各所述物理设备通信连接,所述方法包括:
获取持续集成指令,所述持续集成指令用于指示待编译测试的目标代码的标识以及所述目标代码的编译测试环境信息;
获取各所述物理设备的实时环境信息;
根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备;
向所述目标物理设备发送持续集成控制信息,所述持续集成控制信息用于指示所述目标物理设备基于所述目标物理设备上部署的编译测试程序对所述目标代码进行编译测试,以及,输出所述目标代码的编译测试结果。
可选的,所述控制设备上部署有物理设备监控调度模块,各所述物理设备上分别部署有代理模块,所述物理设备监控调度模块与各所述代理模块之间实时通信连接;
所述获取各所述物理设备的实时环境信息,包括:
由所述物理设备监控调度模块基于与各代理模块之间的实时通信连接,接收各所述代理模块上报的所述物理设备的实时环境信息,所述实时环境信息包括:硬件类型、操作系统类型、资源占用信息。
可选的,所述根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备,包括:
根据所述持续集成指令,获取所述目标代码的编译测试环境信息,所述编译测试环境信息包括:硬件类型、操作系统类型;
根据所述编译测试环境信息以及各所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备;
根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备。
可选的,所述根据所述编译测试环境信息以及各所述所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备,包括:
遍历各所述实时环境信息,针对遍历到的当前实时环境信息,若所述当前实时环境信息中的硬件类型与所述编译测试环境信息中的硬件类型匹配,且所述当前实时环境信息中的操作系统类型与所述编译测试环境信息中的操作系统类型匹配,则将所述当前实时环境信息对应的物理设备作为一个待选物理设备。
可选的,所述根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备,包括:
根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备;
将具有最大空闲资源的物理设备作为所述目标物理设备。
可选的,所述控制设备上还部署有远程控制模块;
所述向所述目标物理设备发送持续集成控制信息,包括:
由所述物理设备监控调度模块向所述远程控制模块发送所述目标代码的标识以及所述目标物理设备的标识;
由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,所述持续集成控制信息中包括所述目标代码的信息,所述目标代码的信息包括:所述目标代码或所述目标代码的标识。
可选的,所述由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,包括:
由所述远程控制模块基于所述远程控制模块与所述目标物理设备之间的通信连接,向所述目标物理设备发送所述持续集成控制信息。
第二方面,本申请提供了一种持续集成装置,所述装置包括:
第一获取模块,用于获取持续集成指令,所述持续集成指令用于指示待编译测试的目标代码的标识以及所述目标代码的编译测试环境信息;
第二获取模块,用于获取各所述物理设备的实时环境信息;
确定模块,用于根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备;
发送模块,用于向所述目标物理设备发送持续集成控制信息,所述持续集成控制信息用于指示所述目标物理设备基于所述目标物理设备上部署的编译测试程序对所述目标代码进行编译测试,以及,输出所述目标代码的编译测试结果。
可选的,所述第二获取模块具体用于:
由所述物理设备监控调度模块基于与各代理模块之间的实时通信连接,接收各所述代理模块上报的所述物理设备的实时环境信息,所述实时环境信息包括:硬件类型、操作系统类型、资源占用信息。
可选的,所述确定模块具体用于:
根据所述持续集成指令,获取所述目标代码的编译测试环境信息,所述编译测试环境信息包括:硬件类型、操作系统类型;
根据所述编译测试环境信息以及各所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备;
根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备。
可选的,所述确定模块具体用于:
遍历各所述实时环境信息,针对遍历到的当前实时环境信息,若所述当前实时环境信息中的硬件类型与所述编译测试环境信息中的硬件类型匹配,且所述当前实时环境信息中的操作系统类型与所述编译测试环境信息中的操作系统类型匹配,则将所述当前实时环境信息对应的物理设备作为一个待选物理设备。
可选的,所述确定模块具体用于:
根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备;
将具有最大空闲资源的物理设备作为所述目标物理设备。
可选的,所述发送模块具体用于:
由所述物理设备监控调度模块向所述远程控制模块发送所述目标代码的标识以及所述目标物理设备的标识;
由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,所述持续集成控制信息中包括所述目标代码的信息,所述目标代码的信息包括:所述目标代码或所述目标代码的标识。
可选的,所述发送模块具体用于:
由所述远程控制模块基于所述远程控制模块与所述目标物理设备之间的通信连接,向所述目标物理设备发送所述持续集成控制信息。
第三方面,本申请提供了一种控制设备,所述控制设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如第一方面所述的持续集成方法的步骤。
第四方面,本申请提供了一种持续集成系统,包括第三方面所述的控制设备以及多个物理设备,所述控制设备与各所述物理设备通信连接。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面所述的持续集成方法的步骤。
本申请的有益效果是:控制设备获取持续集成指令,并获取各物理设备的实时环境信息,根据持续集成指令以及各所述物理设备的实时环境信息确定目标物理设备,从而在满足用户要求的情况下,使物理设备资源利用率最大化。然后控制设备向目标物理设备发送持续集成控制信息,使目标物理设备基于目标物理设备上部署的编译测试程序对目标代码进行编译测试,并输出所述目标代码的编译测试结果。本申请根据物理设备的实时环境情况,通过远程调度的方法将编译测试的任务下发给真实的物理设备执行,从而还原真实的持续集成时的测试场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的一种持续集成方法的应用场景示意图;
图2是本申请实施例提供的一种持续集成方法的流程示意图;
图3是本申请实施例提供的一种编译测试环境配置界面示意图;
图4是本申请实施例提供的一种持续集成方法的交互流程示意图;
图5是本申请实施例提供的一种控制设备和物理设备的具体结构示意图;
图6是本申请实施例提供的一种筛选目标物理设备的流程示意图;
图7是本申请实施例提供的一种筛选目标物理设备的具体流程示意图;
图8是本申请实施例提供的一种发送持续集成控制信息的方法的流程示意图;
图9是本申请实施例提供的一种持续集成方法的具体交互流程示意图;
图10是本申请实施例提供的一种持续集成装置的结构示意图;
图11是本申请实施例提供的一种控制设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。 应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。 此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
基于现有的持续集成资源调度的两种方式均存在的无法还原真实持续集成场景的问题,本申请提出了一种持续集成方法,该方法应用于持续集成系统中的控制设备,控制设备可以基于用户上传或配置的代码指令和编译测试的环境要求,在多个与控制设备通信连接的物理设备中调度满足要求的物理设备,并由满足要求的物理设备进行代码的编译和测试,从而还原真实的持续集成场景。
如下,结合附图通过多个实施例对本实施例提供的持续集成方法进行示例说明。
图1为本申请实施例提供的一种持续集成系统的架构示意图。如图1所示,该持续集成系统包括控制设备以及多个物理设备。控制设备与多个物理设备通信连接。示例性的,控制设备可以与各个物理设备基于安全外壳协议(Secure Shell,简称SSH)连接,也可以基于串口协议连接。控制设备可以获取各个物理设备发送的实时环境信息,当用户提交待编译测试的代码及代码的编译测试环境信息后,控制设备可以根据实时环境信息确定目标物理设备,然后向上述目标物理设备发送持续集成控制信息,从而使目标物理设备对代码进行编译测试,并输出代码的编译测试结果。在上述过程中,控制设备和物理设备通过持续集成方法可以形成持续集成的测试环境,从而还原真实的持续集成测试场景。用户在代码提交界面上提交代码后可以实时获得代码编译测试结果。
以下,参照图2对持续集成方法的具体步骤进行介绍。该持续集成方法可以应用于上述持续集成系统中的控制设备。该持续集成方法包括:
S201、获取持续集成指令,持续集成指令用于指示待编译测试的目标代码的标识以及目标代码的编译测试环境信息。
可选的,用户提交的代码可以存储在代码管理模块中,当需要编译测试该代码时,可以将该代码作为目标代码。其中,代码管理模块可以部署于任一服务器中。控制设备从代码管理模块获取目标代码的标识,该标识可以表示目标代码的当前状态和历史版本。示例性的,目标代码的标识可以是commit代码,具有的唯一的commit-ID。
作为一种可选的实施方式,用户可以通过在目标代码中存储编译测试环境配置文件,从而生成目标代码的编译测试环境信息。作为另一种可选的实施方式,用户可以通过编译测试环境配置界面填写或者选择目标代码需要的编译测试环境。示例性的,图3为一种编译测试环境配置界面示意图,编译测试环境配置界面可以包括两个版块:硬件类型和操作系统类型。硬件类型中可以包括主板型号、主板架构及显卡型号等,操作系统类型可以包括Window 7、Window 8及Window 10等。用户键入硬件类型,并选择操作系统类型后,控制设备可以生成目标代码的编译测试环境信息。
S202、获取各物理设备的实时环境信息。
可选的,各物理设备可以主动向控制设备发送实时环境信息,该实时环境信息可以用于指示各物理设备的操作系统类型、硬件类型和资源占用信息。
示例性的,各物理设备可以通过SSH协议将实时环境信息发送给控制设备,使控制设备判断当前物理设备的实时环境情况是否满足用户要求。
S203、根据持续集成指令以及各物理设备的实时环境信息,确定多个物理设备中的目标物理设备。
可选的,控制设备可以根据持续集成指令中的目标代码的编译测试环境信息及各物理设备的实时环境信息,确定多个物理设备中的目标物理设备。其中,物理设备的实时环境信息中的环境类型可以包含编译测试环境信息中的环境类型。
可选的,控制设备可以选择与控制设备通信连接的多个物理设备中,实时环境信息中的实时环境满足编译测试环境信息中编译测试环境要求的物理设备,并将该物理设备作为目标物理设备。
S204、向目标物理设备发送持续集成控制信息,持续集成控制信息用于指示目标物理设备基于目标物理设备上部署的编译测试程序对目标代码进行编译测试,以及,输出目标代码的编译测试结果。
作为一种可选的实施方式,持续集成控制信息可以包括目标代码,控制设备预先根据目标代码的标识获得目标代码后,通过SSH协议将目标代码发送到目标物理设备中。
作为另一种可选的实施方式,持续集成控制信息可以包括目标代码的标识。目标物理设备获得目标代码的标识后,根据该标识在代码管理模块获取目标代码。
可选的,目标物理设备获取到目标代码后,基于预先部署的编译测试程序对目标代码进行编译测试,并输出目标代码的编译测试结果,从而实现物理设备的远程调度,还原真实的测试场景。
可选的,目标物理设备基于编译测试程序对目标代码进行编译测试之后,可以将编译测试结果发送到控制设备中,控制设备接收编译测试结果并进行展示。
可选的,图4是一种持续集成方法的交互流程示意图。参照图4,控制设备首先获取持续集成指令,并获取各物理设备的实时环境信息,然后根据持续集成指令及各物理设备的实施环境信息确定目标物理设备,再向目标物理设备发送集成控制信息。示例性的,假设图4中物理设备1为目标物理设备,则物理设备1接收到持续集成信息后对目标代码进行编译测试,并输出目标代码的编译测试结果。
本实施例中,控制设备获取持续集成指令,并获取各物理设备的实时环境信息,根据持续集成指令以及各所述物理设备的实时环境信息确定目标物理设备。从而在满足用户要求的情况下,使物理设备资源利用率最大化。然后控制设备向目标物理设备发送持续集成控制信息,使目标物理设备基于目标物理设备上部署的编译测试程序对目标代码进行编译测试,并输出所述目标代码的编译测试结果。本申请根据物理设备的实时环境情况,通过远程调度的方法将编译测试的任务下发给真实的物理设备执行,从而还原真实的持续集成时的测试场景。
图5为一种控制设备和物理设备的具体结构示意图,在介绍完持续集成方法的步骤后,参照图5介绍控制设备和物理设备的具体结构。
作为一种可选的实施方式,控制设备上部署有物理设备监控调度模块,各物理设备上分别部署代理模块,物理设备监控调度模块与各代理模块之间实时通信连接。
可选的,各物理设备中部署的代理模块可以实时获取所属物理设备的实时环境状态,并根据实时环境状态生成实时环境信息,将实时环境信息发送给控制设备上部署的物理设备监控调度模块。值得注意的是,各物理设备中代理模块发送的实时环境信息中可以包括各个物理设备的唯一身份标识。
可选的,控制设备上还部署有远程控制模块,远程控制模块可以用于远程控制目标物理机完成对目标代码的编译测试,并输出目标代码的编译测试结果。
接下来对上述步骤S202中获取各物理设备的实施环境信息,进行详细介绍。
可选的,由物理设备监控调度模块基于与各代理模块之间的实时通信连接,接收各代理模块上报的物理设备的实时环境信息,实时环境信息包括:硬件类型、操作系统类型及资源占用信息。
可选的,物理设备监控调度模块可以根据物理设备中的各代理模块发送的实时环境信息选择满足用户提交的编译测试环境信息的物理设备,将该物理设备作为目标物理设备,控制设备能够根据目标物理设备的标识远程控制目标物理设备,使目标物理设备基于部署的编译测试程序对目标代码进行编译测试。
可选的,硬件类型可以包括主板型号、主板架构和显卡类型等。
示例性的,操作系统类型可以包括:Windows7、Windows8及Windows10等。
可选的,资源占用信息可以包括物理设备当前状态及负载情况。其中,物理设备当前状态可以表征物理设备当前是否处于空闲状态,负载情况表征物理设备的中央处理器的负载情况。
本实施例中,通过部署在控制设备中的物理设备监控调度模块基于与各部署在物理设备中的代理模块之间的实时通信连接,接收各代理模块上报的物理设备的实时环境信息,从而控制设备能够获取各物理设备的实时环境状态,并完成后续的判断和调度步骤。这将提高物理设备运算资源的利用率,提高代码处理效率。
在介绍完如何获取各物理设备的实施环境信息之后,参照图6对上述步骤S203中根据持续集成指令以及各物理设备的实时环境信息,确定多个物理设备中的目标物理设备,进行详细解释。本实施例中确定目标物理设备的步骤可以由控制设备中的物理设备监控调度模块执行。
S601、根据持续集成指令,获取目标代码的编译测试环境信息,编译测试环境信息包括:硬件类型、操作系统类型。
可选的,获取持续集成指令中用户上传的目标代码的编译测试环境信息。
可选的,编译测试环境信息中的硬件类型可以包括主板型号、主板架构和显卡类型等。
S602、根据编译测试环境信息以及各实时环境信息,确定满足编译测试环境信息的至少一个待选物理设备。
可选的,根据编译测试环境中的硬件类型和操作系统类型,选择各个物理设备中代理模块上传的实时环境信息中,与编译测试环境中的硬件类型和操作系统类型相同的物理设备,将该物理设备作为待选物理设备。
可选的,目标代码的编译测试环境信息可以相同,也可以不同。当目标代码的编译测试环境相同时,满足编译测试环境信息的待选物理设备相同。
S603、根据各待选物理设备的实时环境信息,从至少一个待选物理设备中筛选出目标物理设备。
可选的,根据各待选物理设备的实时环境信息中的资源占用信息,从至少一个待选物理设备中筛选出目标物理设备。具体的,选择资源占用信息中资源占用最小的待选物理设备作为目标物理设备。
本实施例中,通过根据持续集成指令,获取目标代码的编译测试环境信息,根据编译测试环境信息以及各实时环境信息,确定满足编译测试环境信息的至少一个待选物理设备,再根据各待选物理设备的实时环境信息,从至少一个待选物理设备中筛选出目标物理设备,从而提高物理设备资源利用率。
接下来,对上述步骤S602中根据编译测试环境信息以及各实时环境信息,确定满足编译测试环境信息的至少一个待选物理设备,进行说明:
可选的,遍历各实时环境信息,针对遍历到的当前实时环境信息,若当前实时环境信息中的硬件类型与编译测试环境信息中的硬件类型匹配,且当前实时环境信息中的操作系统类型与编译测试环境信息中的操作系统类型匹配,则将当前实时环境信息对应的物理设备作为一个待选物理设备。
可选的,将实时环境信息中的硬件类型与编译测试环境信息中的硬件类型匹配,且实时环境信息中的操作系统类型与编译测试环境信息中的操作系统类型匹配的所有物理设备,作为待选物理设备,再根据实时环境信息中的资源占用信息从待选物理设备中选择目标物理设备。
可选的,若控制设备无法找到满足编译测试环境信息的物理设备,则输出一个没有合适物理设备的信息,并向用户提供可选的物理设备的硬件类型和操作系统类型。示例性的,可以通过界面弹窗的方式提示用户当前所有物理设备无法满足上传的编译测试环境,并提出可匹配列表,该列表中包含当前物理设备中代理模块上传的硬件类型和操作系统类型供用户选择。
本实施例中,通过遍历各实时环境信息,针对遍历到的当前实时环境信息,选择当前实时环境信息中的硬件类型与编译测试环境信息中的硬件类型匹配,且当前实时环境信息中的操作系统类型与编译测试环境信息中的操作系统类型匹配的物理设备作为一个待选物理设备,从而调度满足用户提交的目标代码编译环境要求的物理设备,进而在该目标物理设备上编译测试代码,实现物理设备的远程控制。
接下来,参照图7对上述步骤S603中根据各待选物理设备的实时环境信息,从至少一个待选物理设备中筛选出目标物理设备,进行介绍:
S701、根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备。
可选的,资源占用信息可以包括当前状态及负载情况。示例性的,当前状态可以分为空闲、非忙碌和忙碌。负载情况可以为当前中央处理器(Central Processing Unit,CPU)的负载程度。示例性的,负载情况可以为10%、30%、60%或100%。
可选的,可以根据预设规则根据资源占用信息确定最大空闲资源的物理设备。示例性的,预设规则可以是:若当前状态相同,则将负载情况中负载程度最小的待选物理设备作为最大空闲资源的物理设备,若当前状态不同,且存在当前状态为空闲的待选物理设备,则将当前状态为空闲的待选物理设备中负载程度最小的待选物理设备作为最大空闲资源的物理设备,若不存在当前状态为空闲的待选物理设备,则将当前状态为非忙碌的待选物理设备中负载程度最小的待选物理设备作为最大空闲资源的物理设备,若不存在当前状态为空闲和非忙碌的待选物理设备,则将当前状态为忙碌的待选物理设备中负载程度最小的待选物理设备作为最大空闲资源的物理设备。值得一提的是,若所有待选物理设备的当前状态均为忙碌,且负载程度均大于70%时,则向用户输出一个没有合适物理设备的信息,避免物理设备过载。
S702、将具有最大空闲资源的物理设备作为目标物理设备。
作为一种可选的实施方式,若所有的待选物理设备的当前状态和负载程度相同,且各待选物理设备的当前状态不为忙碌,或者各待选物理设备的当前状态为忙碌,但是存在负载程度不大于70%时,可以按照待选物理设备的标识,按照标识顺序依次选择物理设备作为目标物理设备。作为另一种可选的实施方式,当满足上述条件时,也可以随机选择一个待选物理设备,作为目标物理设备。
本实施例中,根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备,再将具有最大空闲资源的物理设备作为目标物理设备,使得物理设备的资源利用最大化。
以下参照图8对上述步骤S204中向目标物理设备发送持续集成控制信息,进行介绍:
S801、由物理设备监控调度模块向远程控制模块发送目标代码的标识以及目标物理设备的标识。
可选的,远程控制模块的部署示意图可以参照图5,控制设备中部署物理设备监控调度模块和远程控制模块。
可选的,若物理设备监控调度模块没有筛选出满足编译测试环境条件的物理设备,则不向远程控制模块发送目标代码的标识以及目标物理设备的标识。
S802、由远程控制模块根据目标物理设备的标识,向目标物理设备发送持续集成控制信息,持续集成控制信息中包括目标代码的信息,目标代码的信息包括:目标代码或目标代码的标识。
可选的,远程控制模块可以通过两种方式远程控制目标物理设备进行编码测试。第一种方式为远程控制模块预先获取目标代码,再将目标代码发送给目标物理设备中。这种方式中,持续集成控制信息包含的目标代码的信息包括目标代码。远程控制模块可以预先根据目标代码的标识从代码管理模块中获取目标代码。第二种方式为远程控制模块将目标代码的标识作为目标代码的信息,将该目标代码的信息作为持续集成控制信息发送给目标物理设备,然后目标物理设备按照目标代码的标识向代码管理模块请求并获取目标代码。
本实施例中,由远程控制模块根据目标物理设备的标识,向目标物理设备发送持续集成控制信息,从而实现远程控制,进而通过在物理设备上进行目标代码的编译测试实现真实场景的还原。
接下来,对上述步骤S802中由远程控制模块根据目标物理设备的标识,向目标物理设备发送持续集成控制信息,进行介绍:
可选的,由远程控制模块基于远程控制模块与目标物理设备之间的通信连接,向目标物理设备发送持续集成控制信息。
可选的,远程控制模块和物理设备之间通信连接,并可以向目标物理设备发送持续集成控制信息,从而实现编译测试的任务的下发。示例性的,远程控制模块可以与物理设备之间通过SSH协议通信连接。
可选的,目标物理设备根据接收的持续集成控制信息,获取目标代码,并对目标代码进行编译测试,并输出目标代码的编译测试结果。
本实施例中,远程控制模块基于远程控制模块与目标物理设备之间的通信连接,向目标物理设备发送持续集成控制信息,从而能够实现对物理设备的远程控制。
作为一种可选的实施方式,参照图9对持续集成方法的具体交互流程示意图进行介绍。示例性的,假设图9中物理设备1为目标物理设备。用户上传持续集成指令后,控制设备中部署的物理设备监控调度模块获取持续集成指令,并接收来自各个与物理设备监控调度模块连接的物理设备中部署的代理模块发送的实时环境信息,物理设备监控调度模块根据持续集成指令中的目标代码的编译测试环境信息和各物理设备的实时环境信息确定目标物理设备。物理设备监控调度模块将目标代码的标识和目标物理设备的标识发送给部署在控制设备中的远程控制模块,远程控制模块根据目标物理设备的标识向目标物理设备发送持续集成控制信息,目标物理设备对目标代码进行编译测试,并输出目标代码的编译测试结果。
基于同一发明构思,本申请实施例中还提供了与持续集成方法对应的持续集成装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述持续集成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图10所示,为本申请实施例提供的一种持续集成装置的示意图,所述装置包括:第一获取模块1001、第二获取模块1002、确定模块1003和发送模块1004;其中:
第一获取模块1001,用于获取持续集成指令,所述持续集成指令用于指示待编译测试的目标代码的标识以及所述目标代码的编译测试环境信息;
第二获取模块1002,用于获取各所述物理设备的实时环境信息;
确定模块1003,用于根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备;
发送模块1004,用于向所述目标物理设备发送持续集成控制信息,所述持续集成控制信息用于指示所述目标物理设备基于所述目标物理设备上部署的编译测试程序对所述目标代码进行编译测试,以及,输出所述目标代码的编译测试结果。
可选的,所述第二获取模块1002具体用于:
由所述物理设备监控调度模块基于与各代理模块之间的实时通信连接,接收各所述代理模块上报的所述物理设备的实时环境信息,所述实时环境信息包括:硬件类型、操作系统类型、资源占用信息。
可选的,所述确定模块1003具体用于:
根据所述持续集成指令,获取所述目标代码的编译测试环境信息,所述编译测试环境信息包括:硬件类型、操作系统类型;
根据所述编译测试环境信息以及各所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备;
根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备。
可选的,所述确定模块1003具体用于:
遍历各所述实时环境信息,针对遍历到的当前实时环境信息,若所述当前实时环境信息中的硬件类型与所述编译测试环境信息中的硬件类型匹配,且所述当前实时环境信息中的操作系统类型与所述编译测试环境信息中的操作系统类型匹配,则将所述当前实时环境信息对应的物理设备作为一个待选物理设备。
可选的,所述确定模块1003具体用于:
根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备;
将具有最大空闲资源的物理设备作为所述目标物理设备。
可选的,所述发送模块1004具体用于:
由所述物理设备监控调度模块向所述远程控制模块发送所述目标代码的标识以及所述目标物理设备的标识;
由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,所述持续集成控制信息中包括所述目标代码的信息,所述目标代码的信息包括:所述目标代码或所述目标代码的标识。
可选的,所述发送模块1004具体用于:
由所述远程控制模块基于所述远程控制模块与所述目标物理设备之间的通信连接,向所述目标物理设备发送所述持续集成控制信息。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本申请实施例还提供了一种控制设备,如图11所示,为本申请实施例提供的控制设备结构示意图,包括:处理器1101、存储器1102和总线。所述存储器1102存储有所述处理器1101可执行的机器可读指令(比如,图10中的装置中第一获取模块1001、第二获取模块1002、确定模块1003和发送模块1004对应的执行指令等),当计算机设备运行时,所述处理器1101与所述存储器1102之间通过总线通信,所述机器可读指令被所述处理器61执行时执行上述持续集成方法的处理。
本申请实施例还提供了一种持续集成系统,包括上述控制设备以及多个物理设备,所述控制设备与各所述物理设备通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述持续集成方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种持续集成方法,其特征在于,应用于持续集成系统中的控制设备,所述持续集成系统中包括所述控制设备以及多个物理设备,所述控制设备与各所述物理设备通信连接,所述方法包括:
获取持续集成指令,所述持续集成指令用于指示待编译测试的目标代码的标识以及所述目标代码的编译测试环境信息;
获取各所述物理设备的实时环境信息;
根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备;
向所述目标物理设备发送持续集成控制信息,所述持续集成控制信息用于指示所述目标物理设备基于所述目标物理设备上部署的编译测试程序对所述目标代码进行编译测试,以及,输出所述目标代码的编译测试结果。
2.根据权利要求1所述的方法,其特征在于,所述控制设备上部署有物理设备监控调度模块,各所述物理设备上分别部署有代理模块,所述物理设备监控调度模块与各所述代理模块之间实时通信连接;
所述获取各所述物理设备的实时环境信息,包括:
由所述物理设备监控调度模块基于与各代理模块之间的实时通信连接,接收各所述代理模块上报的所述物理设备的实时环境信息,所述实时环境信息包括:硬件类型、操作系统类型、资源占用信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述持续集成指令以及各所述物理设备的实时环境信息,确定所述多个物理设备中的目标物理设备,包括:
根据所述持续集成指令,获取所述目标代码的编译测试环境信息,所述编译测试环境信息包括:硬件类型、操作系统类型;
根据所述编译测试环境信息以及各所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备;
根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备。
4.根据权利要求3所述的方法,其特征在于,所述根据所述编译测试环境信息以及各所述实时环境信息,确定满足所述编译测试环境信息的至少一个待选物理设备,包括:
遍历各所述实时环境信息,针对遍历到的当前实时环境信息,若所述当前实时环境信息中的硬件类型与所述编译测试环境信息中的硬件类型匹配,且所述当前实时环境信息中的操作系统类型与所述编译测试环境信息中的操作系统类型匹配,则将所述当前实时环境信息对应的物理设备作为一个待选物理设备。
5.根据权利要求3所述的方法,其特征在于,所述根据各待选物理设备的实时环境信息,从所述至少一个待选物理设备中筛选出所述目标物理设备,包括:
根据各待选物理设备的实时环境信息中的资源占用信息,确定具有最大空闲资源的物理设备;
将具有最大空闲资源的物理设备作为所述目标物理设备。
6.根据权利要求2所述的方法,其特征在于,所述控制设备上还部署有远程控制模块;
所述向所述目标物理设备发送持续集成控制信息,包括:
由所述物理设备监控调度模块向所述远程控制模块发送所述目标代码的标识以及所述目标物理设备的标识;
由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,所述持续集成控制信息中包括所述目标代码的信息,所述目标代码的信息包括:所述目标代码或所述目标代码的标识。
7.根据权利要求6所述的方法,其特征在于,所述由所述远程控制模块根据所述目标物理设备的标识,向所述目标物理设备发送所述持续集成控制信息,包括:
由所述远程控制模块基于所述远程控制模块与所述目标物理设备之间的通信连接,向所述目标物理设备发送所述持续集成控制信息。
8.一种控制设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求 1至 7任一所述的持续集成方法的步骤。
9.一种持续集成系统,其特征在于,包括权利要求8所述的控制设备以及多个物理设备,所述控制设备与各所述物理设备通信连接。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1 至 7任一所述的持续集成方法的步骤。
CN202311423049.3A 2023-10-31 2023-10-31 持续集成方法、控制设备、持续集成系统及存储介质 Active CN117149665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311423049.3A CN117149665B (zh) 2023-10-31 2023-10-31 持续集成方法、控制设备、持续集成系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311423049.3A CN117149665B (zh) 2023-10-31 2023-10-31 持续集成方法、控制设备、持续集成系统及存储介质

Publications (2)

Publication Number Publication Date
CN117149665A true CN117149665A (zh) 2023-12-01
CN117149665B CN117149665B (zh) 2024-02-20

Family

ID=88903083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311423049.3A Active CN117149665B (zh) 2023-10-31 2023-10-31 持续集成方法、控制设备、持续集成系统及存储介质

Country Status (1)

Country Link
CN (1) CN117149665B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117437451A (zh) * 2023-12-21 2024-01-23 芯瞳半导体技术(山东)有限公司 图像匹配方法、装置、设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801585A (zh) * 2012-08-24 2012-11-28 上海和辰信息技术有限公司 基于云计算网络环境的信息监控系统与方法
CN102955714A (zh) * 2011-08-17 2013-03-06 阿里巴巴集团控股有限公司 实现动态模拟远程接口的装置及方法
CN105487977A (zh) * 2015-11-30 2016-04-13 北京锐安科技有限公司 一种面向敏捷的自动化测试管理系统和方法
CN105591782A (zh) * 2014-10-24 2016-05-18 中兴通讯股份有限公司 测试设备的管理方法及装置
US20170147476A1 (en) * 2015-11-20 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and apparatus for integration of software development
CN107766194A (zh) * 2017-11-17 2018-03-06 深圳市泉眼网络科技有限公司 测试方法、装置、系统、终端设备及计算机可读存储介质
CN109408382A (zh) * 2018-10-11 2019-03-01 网宿科技股份有限公司 一种持续集成方法和持续集成系统
CN111782554A (zh) * 2020-08-14 2020-10-16 苏州浪潮智能科技有限公司 一种软件测试方法、装置、设备及计算机可读存储介质
CN112383502A (zh) * 2020-09-11 2021-02-19 深圳市证通电子股份有限公司 物理机和虚拟机统一监控的方法、系统和电子装置
CN113238943A (zh) * 2021-05-14 2021-08-10 北京百度网讯科技有限公司 持续集成测试的方法和装置
CN113296945A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 一种持续集成方法、系统、设备及计算机可读存储介质
CN115904959A (zh) * 2022-11-11 2023-04-04 大箴(杭州)科技有限公司 软件集成和部署方法以及软件开发管理系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955714A (zh) * 2011-08-17 2013-03-06 阿里巴巴集团控股有限公司 实现动态模拟远程接口的装置及方法
CN102801585A (zh) * 2012-08-24 2012-11-28 上海和辰信息技术有限公司 基于云计算网络环境的信息监控系统与方法
CN105591782A (zh) * 2014-10-24 2016-05-18 中兴通讯股份有限公司 测试设备的管理方法及装置
US20170147476A1 (en) * 2015-11-20 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and apparatus for integration of software development
CN105487977A (zh) * 2015-11-30 2016-04-13 北京锐安科技有限公司 一种面向敏捷的自动化测试管理系统和方法
CN107766194A (zh) * 2017-11-17 2018-03-06 深圳市泉眼网络科技有限公司 测试方法、装置、系统、终端设备及计算机可读存储介质
CN109408382A (zh) * 2018-10-11 2019-03-01 网宿科技股份有限公司 一种持续集成方法和持续集成系统
CN111782554A (zh) * 2020-08-14 2020-10-16 苏州浪潮智能科技有限公司 一种软件测试方法、装置、设备及计算机可读存储介质
CN112383502A (zh) * 2020-09-11 2021-02-19 深圳市证通电子股份有限公司 物理机和虚拟机统一监控的方法、系统和电子装置
CN113238943A (zh) * 2021-05-14 2021-08-10 北京百度网讯科技有限公司 持续集成测试的方法和装置
CN113296945A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 一种持续集成方法、系统、设备及计算机可读存储介质
CN115904959A (zh) * 2022-11-11 2023-04-04 大箴(杭州)科技有限公司 软件集成和部署方法以及软件开发管理系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CATERINA DINNELLA: "Remote testing: Sensory test during Covid-19 pandemic and beyond", FOOD QUALITY AND PREFERENCE, vol. 96 *
姜文;刘立康;: "基于持续集成的C/C++软件覆盖率测试", 计算机技术与发展, no. 03 *
陈迪;: "基于Jenkins的持续集成系统研究", 电子测试, no. 08 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117437451A (zh) * 2023-12-21 2024-01-23 芯瞳半导体技术(山东)有限公司 图像匹配方法、装置、设备及存储介质
CN117437451B (zh) * 2023-12-21 2024-04-16 芯瞳半导体技术(山东)有限公司 图像匹配方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117149665B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
US10783002B1 (en) Cost determination of a service call
CN112035238B (zh) 任务调度处理方法、装置、集群系统及可读存储介质
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN117149665B (zh) 持续集成方法、控制设备、持续集成系统及存储介质
CN104395889A (zh) 使用边缘数据中心的应用增强
CN111459665A (zh) 一种分布式边缘计算系统及分布式边缘计算方法
CN105979007A (zh) 加速资源处理方法、装置及网络功能虚拟化系统
CN111552550A (zh) 一种基于图形处理器gpu资源的任务调度方法、设备及介质
CN108234659B (zh) 数据处理方法、装置及系统
CN114924745A (zh) 深度学习编译器的运行方法、装置及电子设备
US11726893B2 (en) System for automatically evaluating a change in a large population of processing jobs
KR20220139407A (ko) 태스크 할당 방법 및 장치, 전자 기기 및 컴퓨터 판독가능 매체
CN110941486A (zh) 任务管理方法及装置、电子设备和计算机可读存储介质
US9501321B1 (en) Weighted service requests throttling
CN115373826B (zh) 一种基于云计算的任务调度方法及装置
CN112486912A (zh) 一种文件转换系统、方法、电子设备及存储介质
CN110012003B (zh) 一种云应用抓屏方法和装置
CN110868330B (zh) 云平台可划分cpu资源的评估方法、装置及评估系统
CN110290206B (zh) 一种用于网吧环境的分布式计算系统及方法
CN106648895A (zh) 一种处理数据的方法、装置及终端
CN114327846A (zh) 集群的扩容方法、装置、电子设备及计算机可读存储介质
CN108833532B (zh) 基于物联网的服务处理方法、装置和系统
CN112631577B (zh) 一种模型的调度方法、模型调度器以及模型安全测试平台
CN108984271A (zh) 一种均衡负载的方法以及相关设备
CN115390992A (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