【技术实现步骤摘要】
本专利技术涉及持续集成
,特别涉及一种软件持续集成的方法、装置和系统。
技术介绍
CI (Continuous Integration,持续集成)是一种自动化的软件创建与测试过程, 在软件开发项目中,CI系统将每个CI任务分解成多个CI子任务,如将对某软件的CI任务 分解成获取最新代码、编译代码、打包、发布、安装、自动测试、质量检测和数据度量等CI子 任务,通过不断的执行CI子任务,可尽早地发现软件缺陷,并对其进行修复。由此可见,不 同的CI系统的优劣可对于软件的开发效率和投入成本造成不同的影响。现有的CI系统如图1所示,主要由CI主控和CI代理组成,其对软件进行CI的主 要步骤为首先,用户向某一CI主控下发CI任务;然后,该CI主控将该CI任务分解成多个 CI子任务,并将该CI子任务下发至相应的CI代理执行,其中每个CI代理负责执行的CI任 务类型是固定的;最后,由该相应的CI代理执行该CI子任务,并将执行结果返回CI主控。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题现有的持续集成系统中,由于CI代理负责执行的CI任务类型是固定的,CI主控 只能下发固定的CI任务至相应的CI代理,没有选择的可能性,从而CI代理资源的共享程 度低,资源利用率低下。
技术实现思路
本专利技术实施例提供了一种软件持续集成的方法,以实现CI代理间的负载分担,提 高CI代理的利用率。—方面,本专利技术实施例提供一种软件持续集成的方法,包括接收并管理CI主控发送的CI子任务;根据当前管理的CI代理资源池中至少两个CI代理的在线通信状态、所述至少两 个CI代 ...
【技术保护点】
一种软件持续集成的方法,其特征在于,所述方法包括:接收并管理CI主控发送的CI子任务;根据当前管理的CI代理资源池中至少两个CI代理的在线通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行当前管理的至少一个CI子任务中的当前可执行子任务的目的CI代理,并将所述当前可执行子任务发送至所述目的CI代理,使所述目的CI代理执行所述可执行子任务,所述至少两个CI代理为通用计算单元。
【技术特征摘要】
一种软件持续集成的方法,其特征在于,所述方法包括接收并管理CI主控发送的CI子任务;根据当前管理的CI代理资源池中至少两个CI代理的在线通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行当前管理的至少一个CI子任务中的当前可执行子任务的目的CI代理,并将所述当前可执行子任务发送至所述目的CI代理,使所述目的CI代理执行所述可执行子任务,所述至少两个CI代理为通用计算单元。2.根据权利要求1所述方法,其特征在于,所述根据当前管理的CI代理资源池中至少 两个CI代理的在线通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行所述可 执行子任务的目的CI代理,包括在当前管理的CI代理资源池中的至少两个CI代理均处于在线通信状态时,根据所述 至少两个CI代理返回的空闲状态查询响应,获取至少两个CI代理的计算资源闲置状态;根据所述至少两个CI代理的计算资源闲置状态生成所述至少两个CI代理的空闲计算 资源权值,如果当前CI代理的空闲计算资源权值大于或等于所述可执行子任务的子任务 权值,则所述当前CI代理为目的CI代理。3.根据权利要求2所述方法,其特征在于,所述方法还包括 接收所述CI主控发送的所述空闲计算资源权值的获取请求;响应所述获取请求,将所述空闲计算资源权值发送给所述CI主控,使所述CI主控将其 当前可执行的CI子任务发送给根据所述空闲计算资源权值确定的目的CI代理执行。4.根据权利要求1所述方法,其特征在于,所述接收CI主控发送的可执行子任务之前, 所述方法还包括接收CI主控和CI代理发送的注册请求;根据至少两个CI主控发送的注册请求,获取所述至少两个CI主控间的子任务依赖关 系和所述至少两个CI主控指定的CI代理类型;根据至少两个CI代理发送的注册请求,获取所述至少两个CI代理的类型,将所述至少 两个CI代理按其类型组织成不同的CI代理资源组。5.根据权利要求4所述方法,其特征在于,所述根据当前管理的CI代理资源池中至少 两个CI代理的在线通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行当前管 理的至少一个CI子任务中的当前可执行子任务的目的CI代理,并将所述可执行子任务发 送至所述目的CI代理,使所述目的CI代理执行所述可执行子任务,所述CI代理为通用计 算单元之后,所述方法还包括接收所述目的CI代理发送的所述可执行子任务的执行结果; 根据所述至少两个CI主控间的子任务依赖关系,判断是否有其他CI主控的子任务的 执行依赖所述执行结果,如果有,则记录所述执行结果;响应所述其他CI主控发送的获取所述执行结果的请求,使所述其他CI主控根据所述 执行结果确定并发送当前可执行的CI子任务。6.根据权利要求4所述方法,其特征在于,所述接收CI主控发送的可执行子任务之后, 所述方法还包括;根据所述CI主控指定的CI代理类型,确定目的CI代理资源组; 所述根据当前管理的CI代理资源池中至少两个CI代理的在线通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行所述可执行子任务的目的CI代理,包括在所述目的CI代理资源组中,根据所述目的CI代理资源组中的CI代理的在线通信状 态、所述CI代理的计算资源闲置状态,确定执行所述可执行子任务的目的CI代理。7.根据权利要求1所述方法,其特征在于,所述方法还包括向CI主控和CI代理发送心跳握手消息,以检测所述CI主控和所述CI代理的通信状 态;当检测到所述目的CI代理通信状态异常,将所述目的CI代理未完成的可执行子任务重 新发送给待执行所述可执行子任务的目的CI代理。8.一种CI管理机,其特征在于,所述CI管理机包括可执行子任务接收模块,用于接收并管理CI主控发送的CI子任务; 目的CI代理确定模块,用于根据当前管理的CI代理资源池中至少两个CI代理的在线 通信状态、所述至少两个CI代理的计算资源闲置状态,确定执行当前管理的至少一个CI子 任务中的当前可执行子任务的目的CI代理,并将所述可执行子任务发送至所述目的CI代 理,使所述目的CI代理执行所述可执行子任务,所述至少两个CI代理为通用计算单元。9.根据权利要求8所述CI管理机,其特征在于,所述目的CI代理确定模块包括 计算...
【专利技术属性】
技术研发人员:王佥,孙达,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。