一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

持续集成方法、装置及存储介质与流程

2022-11-12 22:33:46 来源:中国专利 TAG:


1.本技术涉及软件开发技术领域,尤其涉及一种持续集成方法、装置及存储介质。


背景技术:

2.持续集成(continuous integration,简称:ci)是指在软件项目的开发阶段,对软件项目的源代码进行持续性自动化编译、测试,以达到控制代码质量的手段。在软件项目的开发过程中,开发人员可以将软件项目分为多个可独立运行且可集成的子项目,结合持续集成,完成对各子项目进行迭代式的开发和上线发布。
3.具体来说,在持续集成服务器上可以部署持续集成流水线。该持续集成流水线包括了对整个软件项目进行迭代编译测试的全部指令。当开发人员完成软件项目的第一个子项目的源代码开发后,可以通过持续集成服务器,对第一个子项目的源代码进行自动化编译、测试。若第一个子项目持续集成的结果为测试合格,则开发人员可以将第一个子项目上线发布。接着,开发人员可以对开发完成的第二个子项目进行持续集成,即,通过持续集成服务器,对第二个子项目的源代码与第一个子项目的源代码一并进行自动化编译、测试。若第二个子项目持续集成的结果为与第一个子项目形成的集成项目测试合格,则将由第一个子项目与第二个子项目形成的集成项目进行上线发布。以此类推,后续各子项目的持续集成均为与在前编译测试完成的全部子项目进行持续集成,最终完成了整个软件项目的上线发布。
4.由于各软件项目的功能不同,针对每个子项目进行持续集成的操作不同,因此,现有技术需为每个软件项目对应创建一条专用的持续集成流水线。若软件项目的数量较多,或,某一软件项目的子项目构造复杂,持续集成流水线的创建工作变得复杂、繁重,容易造成创建的持续集成流水线出错,进而对软件开发造成不利影响。


技术实现要素:

5.本技术提供一种持续集成方法、装置及存储介质,以解决在软件项目的数量较多,或,某一软件项目的子项目构造复杂的情况下,采用现有技术为软件项目创建专用的持续集成流水线,创建工作复杂、繁重,容易造成创建的持续集成流水线出错的问题。
6.第一方面,本技术提供一种持续集成方法,包括:
7.获取软件项目的集成信息和基本信息;所述集成信息包括对软件项目进行迭代编译测试的各处理步骤的步骤标识;所述基本信息包括所述软件项目的开发语言的语言标识;
8.从预先存储的多个步骤模板中确定与所述步骤标识对应的步骤模板;
9.按所述软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线;所述步骤模板包含多个语言标识各自对应的处理脚本、待配置参数;所述处理脚本是由一个或多个编译测试的处理指令组成的;
10.从所述第一持续集成流水线的各步骤模板中确定与所述语言标识对应的处理脚
本和待配置参数;
11.采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于所述软件项目的持续集成。
12.可选的,所述基本信息还包括所述软件项目的源代码的代码标识和部署所述第二持续集成流水线的服务器的服务器标识;
13.所述采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,包括:
14.确定与所述代码标识对应的待配置参数;
15.采用所述语言标识和所述代码标识确定的待配置参数,对所确定的处理脚本进行配置,得到待部署的第一持续集成流水线;
16.将所述待部署的第一持续集成流水线部署到所述服务器标识对应的服务器,得到第二持续集成流水线。
17.可选的,在所述采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线之后,所述方法还包括:
18.采用所述第二持续集成流水线,对所述软件项目进行持续集成。
19.可选的,所述处理步骤为代码检查、代码编译、镜像构建、测试部署、功能测试、上线部署中的任一项;
20.所述采用所述第二持续集成流水线,对所述软件项目进行持续集成,包括:
21.若所述第二持续集成流水线包括代码检查、代码编译、镜像构建、测试部署、功能测试、上线部署,则,
22.采用所述第二持续集成流水线的代码检查、代码编译、镜像构建、测试部署、功能测试,对所述软件项目进行迭代编译测试;
23.若所述软件项目的迭代编译测试结果为测试合格,则采用所述第二持续集成流水线的上线部署,对所述软件项目进行迭代上线发布。
24.可选的,所述基本信息还包括表征测试部署方式的测试部署标识和表征上线部署方式的上线部署标识;
25.所述测试部署的步骤模板包含多种测试部署方式各自对应的处理脚本;所述上线部署的步骤模板包含多种上线部署方式各自对应的处理脚本;
26.在所述采用所述第二持续集成流水线,对所述软件项目进行持续集成之前,所述方法还包括:
27.从所述第二持续集成流水线的测试部署的处理脚本中,确定与所述测试部署标识对应的处理脚本,并冻结与所述测试部署标识不对应的处理脚本;
28.从所述第二持续集成流水线的上线部署的处理脚本中,确定与所述上线部署标识对应的处理脚本,并冻结与所述上线部署标识不对应的处理脚本。
29.可选的,所述步骤模板还包含所述步骤模板的各处理脚本各自对应的容器标识;
30.所述采用所述第二持续集成流水线,对所述软件项目进行持续集成,包括:
31.从预先存储的多个容器中确定与所述第二持续集成流水线的指定容器标识对应的容器;
32.在所述容器的容器环境中运行所述指定容器标识对应的处理脚本。
33.可选的,所述步骤模板还包含与所述步骤模板的处理脚本关联的缓存标识;
34.所述在所述容器的容器环境中运行所述指定容器标识对应的处理脚本,包括:
35.在所述容器的容器环境中运行所述指定容器标识对应的处理脚本,得到处理结果;
36.将所述处理结果缓存于与所述处理结果关联的缓存标识对应的缓存空间。
37.第二方面,本技术提供一种持续集成设备,所述设备包括:
38.收发模块和处理模块;
39.所述收发模块,用于获取软件项目的集成信息和基本信息;所述集成信息包括对软件项目进行迭代编译测试的各处理步骤的步骤标识;所述基本信息包括所述软件项目的开发语言的语言标识;
40.所述处理模块,用于从预先存储的多个步骤模板中确定与所述步骤标识对应的步骤模板;按所述软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线;所述步骤模板包含多个语言标识各自对应的处理脚本、待配置参数;所述处理脚本是由一个或多个编译测试的处理指令组成的;
41.所述处理模块,还用于从所述第一持续集成流水线的各步骤模板中确定与所述语言标识对应的处理脚本和待配置参数;采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于所述软件项目的持续集成。
42.第三方面,本技术提供一种持续集成装置,所述装置包括:
43.处理器和存储器;
44.所述存储器存储所述处理器可执行的可执行指令;
45.其中,所述处理器执行所述存储器存储的可执行指令,使得所述处理器执行如上所述的方法。
46.第四方面,本技术提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的方法。
47.本技术提供的持续集成方法、装置及存储介质,通过从预先存储的多个步骤模板中,选择与软件项目的集成步骤对应的步骤模板,并按软件项目的集成步骤顺序组装得到适用于多种开发语言的第一持续集成流水线;根据软件项目开发语言的语言标识,确定出第一持续集成流水线中的软件项目所需的处理脚本并对确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。本技术解决了在软件项目的数量较多,或,某一软件项目的子项目构造复杂的情况下,采用现有技术为软件项目创建专用的持续集成流水线,创建工作复杂、繁重,容易造成创建的持续集成流水线出错的问题。
附图说明
48.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
49.图1为现有的软件项目迭代开发和上线发布的场景图;
50.图2为本技术实施例提供的软件项目迭代开发和上线发布的场景图;
51.图3为本技术实施例提供的持续集成方法流程图;
52.图4为本技术实施例提供的持续集成设备结构图;
53.图5为本技术实施例提供的持续集成装置结构图。
54.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
55.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.如图1所示,在软件项目的开发过程中,开发人员可以将软件项目分为多个可独立运行且可集成的子项目,结合持续集成,实现对各子项目进行迭代式的开发和上线发布。图1为现有的软件项目迭代开发和上线发布的场景图。如图1所示,开发人员将软件项目分为多个可独立运行且可集成的子项目。各子项目开发人员在各自的开发设备11上对其负责的子项目进行源代码开发。开发人员通过开发设备11将开发完成的待集成子项目源代码发送到持续集成服务器12。持续集成服务器12上预先部署有软件项目专用的持续集成流水线,并存储有软件项目中已完成持续集成的子项目源代码。持续集成服务器12采用持续集成流水线,将待集成子项目源代码与该软件项目已完成持续集成的子项目源代码进行自动化编译测试,得到由待集成子项目源代码与已完成持续集成的子项目源代码,集成后的集成项目的持续集成结果。若集成项目的持续集成结果为测试合格,则将集成项目部署到该软件项目的生产服务器13上,以实现集成项目的上线发布。用户通过用户端14即可对生产服务器13上线发布的集成项目对应软件进行使用。开发人员每完成一个子项目的源代码开发,均会通过持续集成服务器12进行迭代式的编译测试和上线发布,直至完成软件项目的所有子项目的开发和上线发布。
57.在对软件项目的子项目进行持续集成之前,需基于软件项目的功能和集成步骤,编制软件项目的持续集成流水线,并部署在持续集成服务器12上。由于各软件项目的功能不同,针对每个子项目进行持续集成的操作不同,因此,现有技术需为每个软件项目对应创建一条专用的持续集成流水线。若软件项目的数量较多,或,某一软件项目的子项目构造复杂,持续集成流水线的创建工作变得复杂、繁重,容易造成创建的持续集成流水线出错,进而对软件开发造成不利影响。例如,因为持续集成流水线出错导致上线的软件项目功能出错或导致开发工作受阻等,严重影响用户对软件项目对应软件的使用体验感。
58.对此,本技术提供一种持续集成方法,通过获取软件项目的集成信息和基本信息,集成信息包括对软件项目进行迭代编译测试的各处理步骤的步骤标识,基本信息包括软件项目的开发语言的语言标识;从预先存储的多个步骤模板中确定与步骤标识对应的步骤模板;按软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线;其中,步骤模板包含多个语言标识各自对应的处理脚本、待配置参数;处理脚本是由一个或多个编译测试的处理指令组成的;从第一持续集成流水线的各步骤模板中确定与语言标识对应的处理脚本和待配置参数;采用确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。本技术提供的持续集成方法,软件项目的
持续集成流水线创建工作简单、精准,只需按软件项目的集成步骤选择对应的步骤模板进行组装即可得到第一持续集成流水线,然后根据软件项目的开发语言,确定出第一持续集成流水线中的处理脚本并对其进行配置,即可得到用于持续集成的第二持续集成流水线。本技术提供的持续集成方法解决了在软件项目数量较多,或,某一软件项目的子项目构造复杂的情况下,采用现有技术为软件项目所创建的持续集成流水线容易出错的问题,本技术的方法实现了高效、精准地创建软件项目的持续集成流水线。
59.下面结合部分实施例对本技术提供的持续集成方法进行说明。
60.图2为本技术实施例提供的软件项目迭代开发和上线发布的场景图。如图2所示,持续集成设备21从任一开发设备11获取软件项目的集成信息和基本信息。集成信息包括对软件项目进行迭代编译测试的各处理步骤的步骤标识;基本信息包括软件项目的开发语言的语言标识。持续集成设备21从预先存储的多个步骤模板中确定与软件项目的步骤标识对应的步骤模板。持续集成设备21按软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线。步骤模板包含多个语言标识各自对应的处理脚本、待配置参数。处理脚本是由一个或多个编译测试的处理指令组成的。持续集成设备21从第一持续集成流水线的各步骤模板中确定与语言标识对应的处理脚本和待配置参数。持续集成设备21采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。示例性地,持续集成设备21接收开发设备11所发送的软件项目的待集成子项目源代码。持续集成设备21采用第二持续集成流水线,将所收到的待集成子项目源代码与持续集成设备21上存储的该软件项目已完成持续集成的子项目源代码进行自动化编译测试,得到由待集成子项目源代码与已完成持续集成的子项目源代码集成后的集成项目的迭代编译测试结果。若集成项目的迭代编译测试结果为测试合格,持续集成设备21则将集成项目部署到该软件项目的生产服务器13上,以实现集成项目的上线发布。用户通过用户端14即可对生产服务器13上线发布的集成项目对应软件进行使用。开发人员每完成一个子项目的源代码开发,均可以通过持续集成设备21进行迭代式的编译测试和上线发布,直至完成软件项目的所有子项目的开发和上线发布。
61.本技术实施例提供的持续集成方法,通过从预先存储的多个步骤模板中,确定与软件项目的集成步骤对应的步骤模板,并将确定的步骤模板按软件项目的集成步骤顺序组装得到适用于多种开发语言的第一持续集成流水线;根据软件项目开发语言的语言标识,确定出第一持续集成流水线中的软件项目所需的处理脚本并对确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。本技术提供的持续集成方法,软件项目的持续集成流水线创建工作简单而精准,解决了在软件项目的数量较多,或,某一软件项目的子项目构造复杂的情况下,采用现有技术为软件项目创建专用的持续集成流水线,创建工作复杂、繁重,容易造成创建的持续集成流水线出错的问题;在软件项目的数量较多,或,某一软件项目的子项目构造复杂场景下,本技术提供的方法,实现了对软件项目的持续集成流水线的快速精准创建以及对软件项目的高效持续集成。
62.下面结合图2和图3对本技术提供的持续集成方法进行详细说明。图3为本技术实施例提供的持续集成方法流程图。图3所示实施例的执行主体为图2所示实施例中的持续集成设备21。如图3所示,该方法包括:
63.s301、获取软件项目的集成信息和基本信息;集成信息包括对软件项目进行迭代
编译测试的各处理步骤的步骤标识;基本信息包括软件项目的开发语言的语言标识。
64.具体而言,持续集成设备21获取软件项目的集成信息和基本信息。集成信息包括对软件项目进行迭代编译测试的各处理步骤的步骤标识。基本信息包括软件项目的开发语言的语言标识。
65.示例性地,持续集成设备21可以从开发设备11获取软件项目的集成信息和基本信息。持续集成设备21也可以获取开发人员在持续集成设备21上录入的软件项目的集成信息和基本信息。
66.s302、从预先存储的多个步骤模板中确定与步骤标识对应的步骤模板。
67.具体而言,持续集成设备21从预先存储的多个步骤模板中确定与步骤标识对应的步骤模板。步骤模板是开发人员通过开发设备11、持续集成设备21、其他可编辑的设备中的任一种设备,预先编制完成后存储在持续集成设备21或其他设备上的,以便于持续集成设备21创建持续集成流水线时调用。
68.示例性地,步骤模板可以是基于仓库管理系统持续集成(gitlab continuous integration,简称:gitlab ci)的语法编制的持续集成(ci)模板文件。编制完成的步骤模板可以存储于持续集成设备21或其他设备上的持续集成模板(ci-template)仓库中。
69.s303、按软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线;步骤模板包含多个语言标识各自对应的处理脚本、待配置参数;处理脚本是由一个或多个编译测试的处理指令组成的。
70.具体而言,持续集成设备21按软件项目的处理步骤顺序,将所确定的步骤模板组装成第一持续集成流水线。步骤模板包含多个语言标识各自对应的处理脚本、待配置参数。处理脚本是由一个或多个编译测试的处理指令组成的。
71.示例性地,持续集成设备21按步骤s302确定出软件项目的各处理步骤各自对应的ci模板文件后,在持续集成设备21的仓库管理系统(gitlab)根目录下,按软件项目的处理步骤顺序对ci模板文件进行组装,生成gitlab-ci.yml文件形式的第一持续集成流水线。
72.可选地,每一软件项目的第一持续集成流水线均存储于持续集成设备21。若其他软件项目的集成信息与持续集成设备21已存储的某一第一持续集成流水线对应,持续集成设备21可以基于软件项目的集成信息,直接调用与集成信息对应的第一持续集成流水线进行后续步骤s304-s305。
73.由于步骤模板包含多个语言标识各自对应的处理脚本,因此一条第一持续集成流水线可适用于不同种类开发语言的软件项目,提高了对步骤模板和/或第一持续集成流水线进行维护的便捷性和精准性。例如,在持续集成流水线的处理步骤确定的情况下,相对于一种开发语言对应一条第一持续集成流水线的方式,本技术提供的方法实现了多种开发语言对应一条第一持续集成流水线,提高了对第一持续集成流水线进行维护的便捷性;本技术提供的方法,避免了一种开发语言对应一条第一持续集成流水线的情况下,因第一持续集成流水线数量较多,出现部分开发语言对应的第一持续集成流水线在维护过程中被遗忘,而导致维护不到位、不精准问题的出现。本技术中的开发语言包括但不限于面向对象的编程语言java、超文本预处理器(hypertext preprocessor,简称:php)、面向对象脚本语言ruby、面向对象的解释型计算机编程语言python、超文本标记语言(html)等开发语言。
74.s304、从第一持续集成流水线的各步骤模板中确定与语言标识对应的处理脚本和
待配置参数。
75.具体而言,持续集成设备21从第一持续集成流水线的各步骤模板中确定与语言标识对应的处理脚本和待配置参数。
76.s305、采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。
77.具体而言,持续集成设备21采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线,以用于软件项目的持续集成。
78.可选地,软件项目的基本信息还包括软件项目的源代码的代码标识和部署第二持续集成流水线的服务器的服务器标识。持续集成设备21采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线可以包括步骤s3051-s3053:
79.s3051、持续集成设备21确定与代码标识对应的待配置参数。代码标识包括存储软件项目源代码的设备标识、软件项目名称、子项目源代码名称和版本标识。设备标识例如设备的网址或互联网协议(internet protocol,简称:ip)地址。
80.s3052、持续集成设备21采用语言标识和代码标识确定的待配置参数,对所确定的处理脚本进行配置,得到待部署的第一持续集成流水线。
81.s3053、持续集成设备21将待部署的第一持续集成流水线部署到服务器标识对应的服务器,得到第二持续集成流水线。服务器标识可以是服务器的ip地址。例如,若需将待部署的第一持续集成流水线部署到持续集成设备21,服务器标识则为持续集成设备21的ip地址。可选地,服务器标识对应的服务器也可以是区别于持续集成设备21的服务器或设备。
82.进一步地,在持续集成设备21采用所确定的待配置参数对所确定的处理脚本进行配置,得到第二持续集成流水线之后,本技术的方法还包括:
83.持续集成设备21采用第二持续集成流水线,对软件项目进行持续集成。
84.示例性地,处理步骤为代码检查、代码编译、镜像构建、测试部署、功能测试、上线部署中的任一项。持续集成设备21采用第二持续集成流水线,按如下方式对软件项目进行持续集成:若第二持续集成流水线包括代码检查、代码编译、镜像构建、测试部署、功能测试、上线部署,则,持续集成设备21采用第二持续集成流水线的代码检查、代码编译、镜像构建、测试部署、功能测试,对软件项目进行迭代编译测试;若软件项目的迭代编译测试结果为测试合格,则持续集成设备21采用第二持续集成流水线的上线部署,对软件项目进行迭代上线发布。其中,代码检查、代码编译、镜像构建、测试部署、功能测试、上线部署这些处理步骤是开发人员预先根据软件项目的持续集成需求分解出的持续集成的处理步骤。在本技术提供的持续集成方法中,持续集成还包含了上线发布的处理步骤,如上线部署。
85.可选地,基本信息还包括表征测试部署方式的测试部署标识和表征上线部署方式的上线部署标识。测试部署的步骤模板包含多种测试部署方式各自对应的处理脚本;上线部署的步骤模板包含多种上线部署方式各自对应的处理脚本。持续集成设备21在采用第二持续集成流水线,对软件项目进行持续集成之前,持续集成设备21从第二持续集成流水线的测试部署的处理脚本中,确定与测试部署标识对应的处理脚本,并冻结与测试部署标识不对应的处理脚本,以防与测试部署标识不对应的处理脚本在软件项目的持续集成过程中被误运行;持续集成设备21从第二持续集成流水线的上线部署的处理脚本中,确定与上线部署标识对应的处理脚本,并冻结与上线部署标识不对应的处理脚本,以防与上线部署标
识不对应的处理脚本在软件项目的持续集成过程中被误运行。测试部署方式和上线部署方式均包括但不限于docker容器化部署、kubernetes集群部署等部署方式。
86.可选地,测试部署的步骤模板包含的处理脚本与上线部署的步骤模板包含的处理脚本均包含待配置部署参数。持续集成设备21可以分别确定与测试部署标识和上线部署标识对应的待配置部署参数。持续集成设备21采用测试部署标识所确定的待配置部署参数,对测试部署标识对应的处理脚本进行配置。持续集成设备21采用上线部署标识所确定的待配置部署参数,对上线部署标识对应的处理脚本进行配置。
87.可选地,持续集成设备21采用待配置部署参数,对处理脚本进行配置的操作,也可以与步骤s305或s3052一并进行。
88.测试部署的步骤模板包含多种测试部署方式各自对应的处理脚本,上线部署的步骤模板包含多种上线部署方式各自对应的处理脚本,可确保第一持续集成流水线和第二持续集成流水线满足不同部署方式的软件项目的测试部署和上线部署的需求。在持续集成处理步骤相同的情况下,不同部署方式的软件项目对应同一条第一持续集成流水线和同一条第二持续集成流水线,提高了对第一持续集成流水线和第二持续集成流水线进行部署方式维护的便捷性。
89.可选地,步骤模板还包含步骤模板的各处理脚本各自对应的容器标识。持续集成设备21可以采用第二持续集成流水线,按如下方式对软件项目进行持续集成:持续集成设备21从预先存储的多个容器中确定与第二持续集成流水线的指定容器标识对应的容器;持续集成设备21在指定容器标识对应容器的容器环境中运行指定容器标识对应的处理脚本,以实现对软件项目的持续集成。本技术中的容器包括但不限于docker容器。各处理脚本对应的容器是预先构建后存储于容器仓库中。容器仓库可以存储在持续集成设备21或其他设备上。各容器的容器环境可以是开发人员通过开发设备11、持续集成设备21、其他设备中任一种设备,撰写docker文件(dockerfile)的形式构建的。构建的各docker容器被发送到容器仓库(如docker容器仓库),以便持续集成设备21在持续集成过程中按容器标识从docker容器仓库中调取对应容器进行持续集成操作。容器标识包含:容器仓库的地址信息,如容器仓库的网址或ip地址、容器的名称或编码。
90.为处理脚本的运行提供容器环境的各容器之间是相互隔离和独立的,因此,本技术提供的方法将各处理步骤的处理脚本在各自的容器中运行,可以实现多条第二持续集成流水线的并发执行,进而实现不同软件项目的持续集成在同一持续集成设备上并发执行。
91.进一步地,步骤模板还包含与步骤模板的处理脚本关联的缓存标识。缓存标识包含缓存空间的地址信息。持续集成设备21在容器的容器环境中运行指定容器标识对应的处理脚本,得到处理结果。持续集成设备21将处理结果缓存于与该处理结果关联的缓存标识对应的缓存空间。以便持续集成设备21从缓存空间中调取处理结果,对其进行与之关联的处理步骤的操作。
92.下面结合一示例对软件项目的持续集成进行说明。假设软件项目的第二持续集成流水线包括的处理步骤及处理步骤顺序为:代码检查

代码编译

镜像构建

测试部署

功能测试

上线部署。软件项目的开发语言为java。软件项目的子项目a和b已经完成持续集成,子项目a和b的源代码存储于持续集成设备21上。持续集成设备21对软件项目中待集成的子项目c进行持续集成的过程如下(1)-(6)所示:
93.(1)持续集成设备21基于代码检查中已配置的处理脚本(如代码检查脚本)对应的容器标识,从容器仓库中调取对应的容器,并在所调取的容器中运行该已配置的代码检查脚本,实现对持续集成设备21上软件项目的子项目a、b、c的源代码进行代码静态检查,如基于sonar的代码静态检查,并生成检查结果。检查结果为通过和不通过。其中,若持续集成设备21存储了同一子项目多个版本的源代码,持续集成设备21对持续集成设备21上软件项目的子项目a、b、c的源代码进行代码静态检查,具体为:持续集成设备21对持续集成设备21上软件项目的子项目a、b、c的最新版的源代码进行代码静态检查。
94.(2)若代码检查结果为通过,则持续集成设备21基于代码编译中已配置的处理脚本(如编译脚本)对应的容器标识,从容器仓库中调取对应的容器。持续集成设备21在所调取的容器中运行该已配置的编译脚本,实现对子项目a、b、c的源代码进行集成,并将集成后的源代码(如java
(a b c)
)的开发语言转化为对应的机器语言。机器语言如二进制语言(binary)。例如,持续集成设备21将java
(a b c)
转化为binary
(a b c)

95.(3)持续集成设备21基于镜像构建中已配置的处理脚本(如镜像构建脚本)对应的容器标识,从容器仓库中调取对应的容器。持续集成设备21在所调取的容器中运行该已配置的镜像构建脚本,实现了对代码编译步骤得到的编译结果binary
(a b c)
进行镜像,基于镜像得到的编译结果binary
(a b c)
构建出运行该编译结果binary
(a b c)
所需的生产容器环境,并将镜像得到的编译结果和所构建的生产容器环境进行打包,得到镜像构建结果。
96.(4)持续集成设备21基于测试部署中已配置的处理脚本(如测试部署脚本)对应的容器标识,从容器仓库中调取对应的容器。持续集成设备21在所调取的容器中运行该已配置的测试部署脚本,实现将镜像构建结果部署到各功能测试的设备或服务器上。其中,持续集成设备21将镜像构建结果部署到各功能测试的设备或服务器上之前,需进行权限认证。持续集成设备21在权限认证通过后才可将镜像构建结果部署到各功能测试的设备或服务器上。例如持续集成设备21可以采用从软件项目的基本信息中获取的密钥,或,用户名和密码进行权限认证。后续持续集成设备21进行上线部署之前也需进行类似的权限认证。
97.(5)持续集成设备21基于功能测试中已配置的处理脚本(如功能测试脚本)对应的容器标识,从容器仓库中调取对应的容器,并在所调取的容器中运行该已配置的功能测试脚本。持续集成设备21通过运行功能测试脚本,实现向各功能测试设备或服务器发送测试指令,并接收各功能测试设备或服务器响应测试指令返回的各功能测试结果,还实现对各功能测试结果按预设规则进行处理,将处理得到的软件项目的迭代编译测试结果发送给开发设备11。
98.(6)若软件项目的迭代编译测试结果为测试合格,则持续集成设备21基于上线部署中已配置的处理脚本(如上线部署脚本)对应的容器标识,从容器仓库中调取对应的容器。持续集成设备21在所调取的容器中运行该已配置的上线部署脚本,实现将镜像构建结果部署到生产服务器13,以对集成了子项目a、b、c的软件项目进行上线发布。
99.(7)若软件项目的迭代编译测试结果为测试不合格,则开发人员通过开发设备11对子项目c的源代码进行修改。将修改完成后的子项目c源代码发送到持续集成设备21,持续集成设备21重复步骤(1)-(6),对修改后的子项目c源代码进行持续集成。
100.本技术实施例提供的持续集成方法,通过从预先存储的多个步骤模板中,选择与软件项目的集成步骤对应的步骤模板,并按软件项目的集成步骤顺序组装,得到多种开发
random-access memory,简称:sram),电可擦除可编程只读存储器(英文:electrically-erasable programmable read-only memory,简称:eeprom),可擦除可编程只读存储器(英文:erasable programmable read-only memory,简称:eprom),可编程只读存储器(英文:programmable read-only memory,简称:prom),只读存储器(英文:read-only memory,简称:rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
108.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(英文:application specific integrated circuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
109.本技术实施例还提供一种程序产品,如计算机程序,该计算机程序被处理器执行时实现本技术所涵盖的持续集成方法。
110.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
111.最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施方式对本发明已经进行了详细的说明,但本领域的普通技术人员应当理解:其依然可以对前述实施方式所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施方式技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献