【技术实现步骤摘要】
持续集成环境的流水线优化方法与装置
[0001]本申请涉及计算机
,具体涉及一种持续集成环境的流水线优化方法与装置。
技术介绍
[0002]仓库管理系统持续集成(gitlab continuous integration,gitlab CI)是gitlab提供的持续集成服务,通过将代码集成到主干以保障合并主线之后不会出现质量问题。
[0003]在gitlab CI中,每个推送到gitlab服务器的配置文件中的代码都会构建一个持续集成环境的流水线(pipeline),从而对代码进行自动构建、单元测试和代码检测等流程以实现自动化测试。然而,在测试量较大和测试需求较复杂的情况下,流水线的构建时间将成为阻碍开发人员快速迭代的瓶颈,需要进一步解决。
技术实现思路
[0004]本申请实施例提供了一种持续集成环境的流水线优化方法与装置,以期望实现对流水线的构建时间进行优化,减小流水线的构建时间。
[0005]第一方面,本申请实施例提供一种持续集成环境的流水线优化方法,包括:
[0006]在仓库管理系统中创建项目,并获取为所述项目配置的至少一个运行器以及所述至少一个运行器中的每个运行器所支持的并行运行的作业数量,所述至少一个运行器用于运行所述项目的作业并将运行结果返回所述仓库管理系统;
[0007]在所述项目的根目录中创建第一配置文件,并推送所述第一配置文件到所述仓库管理系统以构建持续集成环境的流水线;
[0008]根据所述至少一个运行器所包含的运行器数量和所述至少一个运 ...
【技术保护点】
【技术特征摘要】
1.一种持续集成环境的流水线优化方法,其特征在于,包括:在仓库管理系统中创建项目,并获取为所述项目配置的至少一个运行器以及所述至少一个运行器中的每个运行器所支持的并行运行的作业数量,所述至少一个运行器用于运行所述项目的作业并将运行结果返回所述仓库管理系统;在所述项目的根目录中创建第一配置文件,并推送所述第一配置文件到所述仓库管理系统以构建持续集成环境的流水线;根据所述至少一个运行器所包含的运行器数量和所述至少一个运行器中的每个运行器所支持的并行运行的作业数量确定针对所述流水线的构建时间的优化策略,并执行所述优化策略。2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个运行器所包含的运行器数量和所述至少一个运行器中的每个运行器所支持的并行运行的作业数量确定针对所述流水线的构建时间的优化策略,包括:根据所述至少一个运行器所包含的运行器数量将独立用例集划分为至少一个独立用例子集;其中,所述独立用例集用于表示独立用例组成的逻辑集合,所述独立用例用于表示不可再分割和不以任何用例的输出为前提的执行单元;将所述至少一个独立用例子集中的每个子集组成为一个第一作业,得到至少一个第一作业;其中,所述至少一个第一作业中的每个第一作业对应有一个所述至少一个运行器中的运行器;根据所述每个运行器所支持的并行运行的作业数量将所述至少一个第一作业编入所述流水线中的阶段。3.根据权利要求2所述的方法,其特征在于,所述根据所述每个运行器所支持的并行运行的作业数量将所述至少一个第一作业编入所述流水线中的阶段,包括:在所述每个运行器所支持的并行运行的作业数量大于或者等于所述每个运行器对应的第一作业中的作业数量的情况下,将所述至少一个第一作业编入所述流水线中的第一阶段,所述第一阶段为所述流水线中的一个阶段。4.根据权利要求2所述的方法,其特征在于,所述根据所述每个运行器所支持的并行运行的作业数量将所述至少一个第一作业编入所述流水线中的阶段,包括:在所述每个运行器所支持的并行运行的作业数量小于或等于所述每个运行器对应的第一作业中的作业数量的情况下,从所述流水线中的第二阶段开始,将所述每个运行器对应的第一作业中选取的第一数量个的作业编入所述第二阶段,所述第一数量小于或者等于所述每个运行器所支持的并行运行的作业数量;将所述至少一个第一作业中的其余作业从所述第二阶段的下一个阶段开始编入。5.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个运行器所包含的运行器数量和所述至少一个运行器中的每个运行器所支持的并行运行的作业数量确定针对所述流水线的构建时间的优化策略,包括:根据所述至少一个运行器所包含的运行器数量将前置用例集划分为至少一个前置用例子集,以及将条件用例集划分为至少一个条件用例子集;其中,所述前置用例集用于表示前置用例组成的逻辑集合,所述条件用例集用于表示条件用例组成的逻辑集合,所述前置用例为独立用例或者所述条件用例,所述独立用例用于表示不可再分割和不以任何用例的
输出为前提的执行单元,所述条件用例用于表示依赖于所述前置用例的输出为前提的执行单元,所述至少一个条件用例子集中的每个子集与所述至少一个前置用例子集中的每个子集一一对应;将所述至少一个前置用例子集中的每个子集组成为一个第二作业以得到至少一个第二作业,以及将所述至少一个条件用例子集中的每个子集组成为一个第三作业以得到至少一个第三作业;根据所述每个运行器所支持的并行运行的作业数量将所述至少一个第二作业和所述至少一个第三作业编入所述流水线中的阶段;其中,第一前置用例子集组成的一个第二作业编入的阶段在第一条件用例子集组成的一个第三作业编入的阶段之前,所述第一前置用例子集为所述至少一个前置用例子集中的一个子集,所述第一条件用例子集为在所述至少一个条件用例子集中依赖所述第一前置用例子集的输出为前提的一个子集...
【专利技术属性】
技术研发人员:杨海波,
申请(专利权)人:深圳云天励飞技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。