掌桥专利:专业的专利平台
掌桥专利
首页

在CI流水线执行过程中修改其参数的方法、装置及介质

文献发布时间:2024-01-17 01:19:37


在CI流水线执行过程中修改其参数的方法、装置及介质

技术领域

本发明涉及软件研发管理技术领域,特别是涉及一种在CI流水线执行过程中修改其参数的方法、装置及介质。

背景技术

通过CI流水线可以自动化完成软件研发的一系列重复性高、价值度低的技术动作,诸如开发人员提交代码后的编译构建、代码扫描、制品晋级、单元测试和部署发布等。CI流水线让整个软件研发过程就像工业流水线一样流畅,减少大量手工操作,提升软件研发效能,降低人工出错风险。但由于CI流水线研发难度大,普遍孵化于技术成熟度高的大型互联网科技企业或者大型开源社区。因此,在业界广泛采用的CI流水线设计中,为保障作业执行顺畅和降低作业报错概率,一旦启动CI流水线,将不允许其参数变更,直至作业结束或者作业终止。

然而,银行、保险、证券和汽车制造等传统企业,由于业务安全系数高、流程管控严格,一条CI流水线的执行至少需要一个月以上的周期。在CI流水线执行周期内,这些传统企业会存在诸多因管理、业务、技术等企业发展要素变更而导致CI流水线参数需要同步变更的场景。一旦需要变更CI流水线参数,则需要作业人员立刻终止CI流水线执行,重新配置相关参数并再次从头执行CI流水线。

如此耗费时间成本的技术限制,不仅让CI流水线在传统企业内的应用和推广受阻,也导致了软件研发效能的大幅度下降,为企业数字业务的交付平添了延期的可能性。

发明内容

基于此,本发明的目的在于提供一种在CI流水线执行过程中修改其参数的方法、装置及介质,用于提高CI流水线的作业灵活度,降低企业内持续集成和持续部署的时间成本,减少因CI流水线参数的变更导致交付延期的可能性,从而保障CI流水线在传统企业内的高效应用,提升传统企业IT研发转型中研发流程管理的智能化水平,保障业务交付与企业所需的一致性。

第一方面,本发明提供了一种在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流水线执行完毕,可以通过支持在CI流水线执行过程中修改其参数,以达到支持随时对CI流水线的作业进行参数修改的目的,从而可以提高CI流水线的作业灵活度,降低企业内持续集成和持续部署的时间成本,减少因CI流水线的参数变更导致交付延期的可能性,从而保障CI流水线在传统企业内的高效应用,提升传统企业IT研发转型中研发流程管理的智能化水平,保障业务交付与企业所需的一致性。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1为本发明提供的一种在CI流水线执行过程中修改其参数的方法的流程示意图;

图2为本发明提供的一种CI流水线的编辑界面的示意图;

图3为本发明提供的另一种CI流水线的编辑界面的示意图;

图4为本发明提供的一种在CI流水线执行过程中修改其参数的装置的结构示意图;

图5为本发明提供的一种计算机装置的结构示意图。

具体实施方式

以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的实施方式的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本公开中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

请参考图1所示,本发明提供了一种在CI流水线执行过程中修改其参数的方法,该方法可以包括如下步骤:

S11、在CI流水线的本轮执行周期内,判断CI流水线的配置参数需要变更时,获取CI流水线对应的参数变更信息。

在具体实施时,CI流水线的本轮执行周期,可以指CI流水线当前单独执行的周期,也可以指CI流水线当前与其它流水线并发执行的周期。

在具体实施时,该参数变更信息可以包括但不限于CI流水线变更后的配置参数。

在具体实施时,启动CI流水线之前,可以先进行CI流水线编排、代码关联及环境管理处理。比如,创建CI流水线后,可以向CI流水线添加作业(也称为插件),根据企业不同的研发流程需求,指定其作业执行的先后顺序,同时关联CI流水线对应的SVN、Github和Gitlab等相关代码库,导入并管理对应的构建环境及其构建节点,完成CI流水线执行前准备。

在具体实施时,在编排CI流水线时,可以设置全局的配置参数,该配置参数在CI流水线的整个执行过程中可以使用,且是动态的,其中,每条CI流水线可设置不一致的配置参数。设置好配置参数后,可以通过配置文件配置允许在CI流水线执行过程中修改的配置参数对应的变量前缀,可以理解为,带有变量前缀的配置参数允许在CI流水线执行过程中修改,其中,不同的配置参数可配置不同的变量前缀。

在本发明中,通过配置允许在CI流水线执行过程中修改的配置参数对应的变量前缀,可以便于业务人员查看正在运行中的CI流水线的所有可被修改的配置参数对应的参数值。

在具体实施时,开发人员完成代码的提交后,可以通过自动或者手动方式触发CI流水线,由CI流水线自动执行后续的编译构建、代码扫描和制品晋级等作业。

在具体实施时,在CI流水线的本轮执行周期内,若开发人员接获企业通知,因管理、业务、技术等企业发展要素变更,导致CI流水线的相关配置参数需要同步变更。

比如,若CI流水线编排目的为拉取gitlab仓库代码,在“UAT环境”完成编译及制品归档,那么环境信息“UAT”可以作为CI流水线的配置参数,该配置参数可在CI流水线执行时,被导入环境作业、编译作业、制品归档作业中应用。当企业“UAT环境”更名为“PRE环境”时,如果CI流水线的相关配置参数不同步变更,如未将配置参数“UAT”变更为“PRE”,CI流水线执行过程中会因找不到“UAT环境”而报错,因此,需要CI流水线的相关配置参数同步变更。

再比如,在CI流水线执行过程中,业务人员可随时查看执行的配置参数的参数值,当发现某个配置参数预填的参数值与实际情况对应的参数值不同时,例如,业务数据一开始时计划部署到A服务器,但由于业务发生了变化,当前需要部署到B服务器,此时,需要将该配置参数的参数值由A服务器更改为B服务器。

基于此,在本发明中,在CI流水线的本轮执行周期内,判断CI流水线的配置参数需要变更时,为了提升CI流水线的作业效率,开发人员不需要将CI流水线终止,只需在CI流水线当前执行过程中修改配置参数即可,如返回该CI流水线的编辑界面,在该编辑界面输入CI流水线变更后的配置参数。换言之,获取到开发人员通过CI流水线的编辑界面输入的CI流水线变更后的配置参数时,即可获得CI流水线对应的参数变更信息。

示例性的,CI流水线的编辑界面可以如图2所示。开发人员点击“参数调整”按钮时,触发该编辑界面提供支持修改CI流水线的配置参数的弹窗。开发人员可以在弹窗内输入CI流水线变更后的配置参数,点击确定即可将变更后的配置参数保存至数据库。

在具体实施时,获取到上述参数变更信息后,可以默认上述参数变更信息仅在CI流水线的本轮执行周期内生效。比如,若在CI流水线的本轮执行周期内,将环境参数由“UAT”改成“PRE”后,环境参数“PRE”仅在CI流水线的本轮执行周期内生效。如此设置,可以使得CI流水线下一轮执行周期及之后执行周期需要本轮执行周期内未进行变更之前的配置参数时,无需开发人员再将CI流水线的配置参数进行复原。

S12、基于该参数变更信息,通过CI流水线修改其对应的数据库内的相关参数。

在具体实施时,CI流水线可以根据变更后的配置参数,自动修改对应的数据库内的相关参数。比如,若CI流水线变更后的配置参数为“PRE”,那么CI流水线可以自动将其对应的数据内的相关参数“UAT”修改为“PRE”。

S13、获取数据库的最新参数,并通过CI流水线基于该最新参数执行后续的作业,直至CI流水线执行完毕。

在具体实施时,获取到数据库的最新参数后,如通过CI流水线读取数据库的最新参数,获得该最新参数后,可以通过CI流水线基于该最新参数执行后续的作业(即还未执行的作业),直至CI流水线执行完毕,无需再从头执行CI流水线。

示例性的,如图3所示,若数据库的最新参数为“PRE”,那么CI流水线在本轮执行周期内的后续过程中,后面的导入环境作业、编译作业、制品归档作业,都将会应用到数据库的最新参数“PRE”,此时,CI流水线不会报错顺利执行,可确保业务按预期发展。比如,因CI流水线已执行的作业已完成相关业务,也未对CI流水线的编排(即作业顺序、作业配置等内容)进行修改,仅调整配置参数,对于未执行的作业仍按原逻辑继续执行,可保障业务执行顺畅。而基于管理、业务、技术等要素变更而修改的参数内容进行调整后,也可有效规避旧参数内容不再适配新要素而带来的作业执行报错。

在本发明中,通过支持在CI流水线执行过程中修改其参数,以达到支持随时对CI流水线的作业进行参数修改的目的,从而可以提高CI流水线的作业灵活度,降低企业内持续集成和持续部署的时间成本,减少因CI流水线的参数变更导致交付延期的可能性,从而保障CI流水线在传统企业内的高效应用,提升传统企业IT研发转型中研发流程管理的智能化水平,保障业务交付与企业所需的一致性。

需要说明的是,任一条CI流水线在执行过程中修改配置参数时,不会影响其它正在执行的CI流水线的作业。

在本发明提供的一种可适用的场景,结合图1和图4所示,本发明提供的在CI流水线执行过程中修改其参数的方法,还可以包括如下步骤:

S14、若确定该参数变更信息至少在CI流水线的下一轮执行周期内生效,则在CI流水线的本轮执行周期结束后,基于该参数变更信息对CI流水线的配置参数进行正式变更。

在具体实施时,若确定之后的CI流水线作业需要应用变更后的配置参数,在步骤S11和步骤S13之间,可以由开发人员设置该参数变更信息至少在CI流水线的下一轮执行周期内生效。在CI流水线的本轮执行周期结束后,即可对CI流水线的配置参数进行正式变更。

在本发明中,可以支持开发人员根据业务需求选择该参数变更信息仅在本轮执行周期内就生效,或者,在本轮执行周期及其之后的执行周期内生效。

在实际应用中,本发明提供的在CI流水线执行过程中修改其参数的方法可以应用于对业务安全系数高、流程管控严格的传统行业,诸如银行、保险、证券和汽车制造等行业。

基于同一发明构思,本发明实施例还提供了一种计算机装置,如图4所示,在CI流水线执行过程中修改其参数的装置20可以包括:

接收单元21,用于在CI流水线的本轮执行周期内,判断CI流水线的配置参数需要变更时,获取CI流水线对应的参数变更信息,该参数变更信息包括CI流水线变更后的配置参数;

处理单元22,用于基于该参数变更信息,通过CI流水线修改其对应的数据库内的相关参数;获取数据库的最新参数,并通过CI流水线基于该最新参数执行后续的作业,直至CI流水线执行完毕。

在一种可能的设计中,接收单元21具体用于:

获取到开发人员通过CI流水线的编辑界面输入的CI流水线变更后的配置参数,获得该参数变更信息;该编辑界面包括参数调整按钮,在参数调整按钮被点击时提供支持修改CI流水线的配置参数的弹窗。

在一种可能的设计中,处理单元22还用于:

在编排CI流水线时,设置全局的配置参数;

通过配置文件配置允许在CI流水线执行过程中修改的配置参数对应的变量前缀。

在一种可能的设计中,处理单元22还用于:

默认该参数变更信息仅在CI流水线的本轮执行周期内生效。

在一种可能的设计中,处理单元22还用于:

若确定该参数变更信息至少在CI流水线的下一轮执行周期内生效,则在CI流水线的本轮执行周期结束后,基于该参数变更信息对CI流水线的配置参数进行正式变更。

本发明实施例中的在CI流水线执行过程中修改其参数的装置20与上述图1所示的在CI流水线执行过程中修改其参数的方法是基于同一构思下的发明,通过前述对在CI流水线执行过程中修改其参数的方法的详细描述,本领域技术人员可以清楚的了解本实施例中在CI流水线执行过程中修改其参数的装置20的实施过程,所以为了说明书的简洁,在此不再赘述。

基于同一发明构思,本发明实施例还提供了一种计算机装置,如图5所示,计算机装置30可以包括:至少一个存储器31和至少一个处理器32。其中:

至少一个存储器31用于存储一个或多个程序。

当一个或多个程序被至少一个处理器32执行时,实现上述图1所示的在CI流水线执行过程中修改其参数的方法。

计算机装置30还可以可选地包括通信接口,通信接口用于与外部设备进行通信和数据交互传输。

需要说明的是,存储器31可能包含高速RAM存储器,也可能还包括非易失性存储器(nonvolatile memory),例如至少一个磁盘存储器。

在具体的实现过程中,如果存储器31、处理器32及通信接口集成在一块芯片上,则存储器31、处理器32及通信接口可以通过内部接口完成相互间的通信。如果存储器31、处理器32和通信接口独立实现,则存储器31、处理器32和通信接口可以通过总线相互连接并完成相互间的通信。

基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以存储有至少一个程序,当至少一个程序被处理器执行时,实现上述图1所示的在CI流水线执行过程中修改其参数的方法。

应当理解,计算机可读存储介质为可存储数据或程序的任何数据存储设备,数据或程序其后可由计算机系统读取。计算机可读存储介质的示例包括:只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备等。

计算机可读存储介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。

计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等,或者上述的任意合适的组合。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术分类

06120116133736