一种基于CI引擎流水线节点的跳过处理方法与流程

文档序号:29355303发布日期:2022-03-22 23:46阅读:225来源:国知局
一种基于CI引擎流水线节点的跳过处理方法与流程
一种基于ci引擎流水线节点的跳过处理方法
技术领域
1.本发明涉及ci引擎流水线领域,尤其涉及一种基于ci引擎流水线节点的跳过处理方法。


背景技术:

2.在ci引擎流水线执行过程中,流水线执行是根据用户在创建流水线时的编辑顺序依次执行的,但是在这条流水线运行时,并非每次运行都必须要跑遍所有流水线节点,但每次运行之前重新编辑删除,新增节点太过于繁琐。
3.在流水线执行过程中,会遇到个别流水线节点在本次运行过程无需执行的情况,用户在执行这次流水线时想要跳过执行个别节点,而又无需去做删除节点等一系列操作导致破坏整条流水线的结构影响之后的使用。


技术实现要素:

4.为了解决以上技术问题,本发明提供了一种基于ci引擎流水线节点的跳过处理方法,基于ci引擎流水线中的节点特性,对于流水线ci dsl文件进行加工处理。配合流水线前端界面的部分操作,实现对节点进行选择跳过处理,满足用户对流水线这种特殊操作需求。
5.本发明的技术方案是:
6.一种基于ci引擎流水线节点的跳过处理方法,
7.基于ci引擎流水线中的节点特性,对于流水线ci dsl文件进行加工处理;配合流水线前端界面的操作,将流水线后端跳过节点的状态字段赋值给ci dsl文件配置文件,并在启动时调用生成;通过对流水线运行ci dsl文件不同的的生成方式来实现对流水线节点是否运行的控制处理,并以此种方式来达到灵活控制流水线的运行节点。
8.进一步的,
9.具体实现过程如下:
10.首先,用户通过前端展示界面操作流水线节点,勾选是否跳过该节点(勾选即为跳过);
11.其次,将勾选结果通过请求发送给后台并将结果保存到数据库中;然后,在执行流水线时,实时获取该条流水线在数据库中的跳过状态并把状态值写入到cidsl文件中;
12.最后,将ci dsl文件写入ci引擎后台执行流水线,在执行每一个流水线中的节点时,ci引擎会根据文件中配置的状态值判断该节点是否需要跳过,如果遇到状态值为跳过状态的节点,ci引擎会跳过执行该节点,继续执行流水线中接下来的节点。
13.基于以上实现方案,用户可以直观的通过操作流水线节点的方式控制流水线next的运行节点。达到灵活控制流水线运行节点的目的。
14.进一步的,
15.在使用的jenkinsci引擎中,利用when关键字进行逻辑处理。
16.再进一步的,
17.在处理跳过逻辑时使用when expression的方式判断,当用户将节点置为跳过状态时,程序将配置expression中的groovy表达式中的为true,使dsl文件中与when对应的代码块失效,ci引擎在识别代码块时就会自动将这块代码块逻辑保留但不执行。
18.当需要简化流水线的执行过程时,手动将节点状态置为跳过,再次执行流水线时,便可按规划决定流水线的执行节点内容。
19.本发明的有益效果是
20.通过使用本发明,用户可以更加灵活地选择处理流水线节点的执行,并且不影响流水线本身的完整性,通过跳过功能的打开/关闭的方式给用户带来更方便的流水线执行方法。提高了流水线产品的体验感与可用性。
附图说明
21.图1是节点跳过的处理示意图;
22.图2是流水线节点运行方式示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.本发明提供了一种基于ci引擎流水线节点的跳过处理方法,创建一条完整的流水线,再根据每次执行时的不同需求,对不必要的节点进行跳过处理;通过对流水线运行ci dsl文件不同的的生成方式来实现对流水线节点是否运行的控制处理。并以此种方式来达到灵活控制流水线的运行节点。
25.主要包括以下几个步骤:
26.1)用户操作流水线展示界面,勾选节点的跳过按钮。(此步骤将stage节点的跳过状态字段skip_status置为true)
27.2)将跳过状态通过web请求回传到后台,并将节点的跳过状态写入到后台数据库中保存。(将后台数据库中的stage表中的具体的skip_status字段赋值)
28.3)运行流水线时,获取数据库中skip_status字段内容,将跳过状态赋值到对应流水线的ci dsl文件模板中。
29.4)将ci dsl文件写入ci引擎后台执行流水线,ci引擎后台根据不同流水线节点的跳过状态自行判断是否跳过本节点。
30.5)流水线自身的处理方式,本质上是将ci引擎的所需要的dsl文件在程序中按照自己的规则配置生成,再在执行时将其传到ci引擎中识别,由ci引擎按照配置好的内容自动化的处理程序的编译,构建,检查,发布等一系列的过程。因此,在处理跳过节点功能时其关键点在于如何识别,处理生成最核心的cidsl模板文件
31.流水线的节点运行方式如附图2所示。
32.如何根据指定的条件进行不同的逻辑处理,这是很多场景中需要碰到的情况。将一条流水线封装成很多条不需要考虑逻辑的多条流水线的做法,在分支逻辑稍微复杂的情
况下变得完全不具有可操作性。所以在使用的jenkinsci引擎中可以考虑用when关键字进行逻辑处理。
33.而when关键字的使用方式又包含多种逻辑条件的判断。其逻辑关系如下表所示:
34.35.[0036][0037]
在本次处理跳过逻辑时使用的是此表中when expression的方式判断,当用户将节点置为跳过状态时,程序将配置expression中的groovy表达式中的为true,使dsl文件中与when对应的代码块失效,ci引擎在识别代码块时就会自动将这块代码块逻辑保留但不执行。
[0038]
节点跳过功能:
[0039]
[0040][0041]
这样,当用户需要简化流水线的执行过程时,只需要手动将节点状态置为跳过,再次执行流水线时,便可按照用户自己的规划决定流水线的执行节点内容。在面对用户因自身因权限不足无法编辑修改整条流水线时提供了方便简化的解决方案。
[0042]
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。


技术特征:
1.一种基于ci引擎流水线节点的跳过处理方法,其特征在于,基于ci引擎流水线中的节点特性,对于流水线cidsl文件进行加工处理;配合流水线前端界面的操作,将流水线后端跳过节点的状态字段赋值给cidsl文件配置文件,并在启动时调用生成;通过对流水线运行cidsl文件不同的的生成方式来实现对流水线节点是否运行的控制处理,并以此种方式来达到灵活控制流水线的运行节点。2.根据权利要求1所述的方法,其特征在于,包括以下几个步骤:1)用户操作流水线展示界面,勾选节点的跳过按钮;2)将跳过状态通过web请求回传到后台,并将节点的跳过状态写入到后台数据库中保存;3)运行流水线时,获取数据库中skip_status字段内容,将跳过状态赋值到对应流水线的cidsl文件模板中;4)将cidsl文件写入ci引擎后台执行流水线,ci引擎后台根据不同流水线节点的跳过状态自行判断是否跳过本节点。3.根据权利要求2所述的方法,其特征在于,步骤1)中将stage节点的跳过状态字段skip_status置为true。4.根据权利要求2所述的方法,其特征在于,步骤2)中将后台数据库中的stage表中的具体的skip_status字段赋值。5.根据权利要求2所述的方法,其特征在于,ci引擎会根据文件中配置的状态值判断该节点是否需要跳过,如果遇到状态值为跳过状态的节点,ci引擎会跳过执行该节点,继续执行流水线中接下来的节点。6.根据权利要求2所述的方法,其特征在于,在使用的jenkinsci引擎中,利用when关键字进行逻辑处理。7.根据权利要求6所述的方法,其特征在于,在处理跳过逻辑时使用when expression的方式判断,当用户将节点置为跳过状态时,程序将配置expression中的groovy表达式中的为true,使dsl文件中与when对应的代码块失效,ci引擎在识别代码块时就会自动将这块代码块逻辑保留但不执行。8.根据权利要求7所述的方法,其特征在于,当需要简化流水线的执行过程时,手动将节点状态置为跳过,再次执行流水线时,便可按规划决定流水线的执行节点内容。

技术总结
本发明提供一种基于CI引擎流水线节点的跳过处理方法,属于CI引擎流水线领域,本发明于CI引擎流水线中的节点特性,对于流水线CI DSL文件进行加工处理。配合流水线前端界面的部分操作,实现对节点进行选择跳过处理,满足用户对流水线这种特殊操作需求。用户对流水线这种特殊操作需求。用户对流水线这种特殊操作需求。


技术研发人员:陈宇琦 孙乐恬 高传集
受保护的技术使用者:上海浪潮云计算服务有限公司
技术研发日:2021.12.16
技术公布日:2022/3/21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1