补丁包的生成方法、装置、电子设备及可读介质与流程
未命名
10-19
阅读:75
评论:0
1.本技术属于计算机技术领域,特别涉及一种补丁包的生成方法、装置、电子设备及可读介质。
背景技术:
2.随着信息技术的发展,开发人员往往需要对于同一软件程序开发适用于多个不同操作系统的程序代码,这就需要为每个操作系统维护一套程序代码,在程序更新的时候,同样需要为不同的操作系统下的程序代码制作补丁包。
3.因此每次修改时,需要对于同一补丁代码设置多个程序分支来编译不同操作系统下的补丁代码,这就需要占用大量的处理资源,减低了补丁包编译的资源利用率。
技术实现要素:
4.本技术提供的一种补丁包的生成方法、装置、电子设备及可读介质。
5.本技术一些实施例提供一种补丁包的生成方法,所述方法包括:
6.在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;
7.基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。
8.可选地,每个所述编译构建任务的执行步骤如下:
9.在执行目标打包格式相对应的编译构建任务时,下载所述代码仓库中所有编译目录;
10.删除所述目标打包格式以外打包格式相对应的编译目录;
11.基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包。
12.可选地,所述基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包的步骤,包括:
13.在所述目标打包格式为deb格式时,采用gbp打包工具基于所述deb格式相对应的编译目录进行编译和打包,得到所述deb格式的补丁包,其中,所述gbp打包工具的编译命令至少包括:用于指示所述gbp打包工具忽略由于删除编译目录导致的输入变化的指令。
14.可选地,所述基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包的步骤,包括:
15.在所述目标打包格式为rpm格式时,采用rpmbuild打包工具基于所述rpm格式相对应的编译目录进行编译和打包,得到所述rpm格式的补丁包。
16.可选地,所述打包格式至少包括:deb格式和rpm格式;
17.所述将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所
述打包格式相对应的编译目录中的步骤,包括:
18.将所述补丁代码按照所述deb格式的编译规则,放入所述deb格式相对应的编译目录中;
19.按照所述rpm格式相对应的编译规则,将所述deb格式相对应的编译目录中的补丁代码,软链接到所述rpm格式相对应的编译目录中。
20.可选地,所述基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包的步骤,包括:
21.在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务。
22.可选地,所述在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务的步骤,包括:
23.通过gerrittrigger对代码仓库的提交事件进行监控,在监控到代码仓库的编辑目录的提交时间时,触发基于每个所述编译目录的多个编译构建任务。
24.本技术一些实施例提供一种补丁包的生成装置,所述装置包括:
25.获取模块,被配置为在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;
26.编译模块,被配置为基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。
27.可选地,所述编译模块,还被配置为:
28.在执行目标打包格式相对应的编译构建任务时,下载所述代码仓库中所有编译目录;
29.删除所述目标打包格式以外打包格式相对应的编译目录;
30.基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包。
31.可选地,所述编译模块,还被配置为:
32.在所述目标打包格式为deb格式时,采用gbp打包工具基于所述deb格式相对应的编译目录进行编译和打包,得到所述deb格式的补丁包,其中,所述gbp打包工具的编译命令至少包括:用于指示所述gbp打包工具忽略由于删除编译目录导致的输入变化的指令。
33.可选地,所述编译模块,还被配置为:
34.在所述目标打包格式为rpm格式时,采用rpmbuild打包工具基于所述rpm格式相对应的编译目录进行编译和打包,得到所述rpm格式的补丁包。
35.可选地,所述打包格式至少包括:deb格式和rpm格式;
36.所述获取模块,还被配置为:
37.将所述补丁代码按照所述deb格式的编译规则,放入所述deb格式相对应的编译目录中;
38.按照所述rpm格式相对应的编译规则,将所述deb格式相对应的编译目录中的补丁
代码,软链接到所述rpm格式相对应的编译目录中。
39.可选地,所述编译模块,还被配置为:
40.在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务。
41.可选地,所述编译模块,还被配置为:
42.通过gerrittrigger对代码仓库的提交事件进行监控,在监控到代码仓库的编辑目录的提交时间时,触发基于每个所述编译目录的多个编译构建任务。
43.本技术一些实施例提供一种计算处理设备,包括:
44.存储器,其中存储有计算机可读代码;
45.一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如上述的补丁包的生成方法。
46.本技术一些实施例提供一种非瞬态计算机可读介质,存储计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行上述的补丁包的生成方法。
47.本技术提供的一种补丁包的生成方法、装置、电子设备及可读介质,通过将需要被编译为不同打包格式的同一补丁代码,按照不同的编译规则存放至处于同一代码仓库中编译目录中,从而使得单一程序分支可以通过调用单一代码仓库触发对于多个不同打包格式相对应的编译构建任务来编译和打包成不同多个不同打包格式的补丁包,实现了通过单一程序分支对于多个遵循不同打包格式的补丁包的生成过程,减少了编译程序所需占用的处理资源,提高了编译程序的资源利用率。
48.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
49.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1示意性地示出了本技术一些实施例提供的一种补丁包的生成方法的流程示意图;
51.图2示意性地示出了本技术一些实施例提供的另一种补丁包的生成方法的流程示意图;
52.图3示意性地示出了本技术一些实施例提供的一种补丁包的生成方法的效果示意图之一;
53.图4示意性地示出了本技术一些实施例提供的一种补丁包的生成方法的效果示意图之二;
54.图5示意性地示出了本技术一些实施例提供的一种补丁包的生成装置的结构示意图;
55.图6示意性地示出了用于执行根据本技术一些实施例的方法的计算处理设备的框图;
56.图7示意性地示出了用于保持或者携带实现根据本技术一些实施例的方法的程序代码的存储单元。
具体实施方式
57.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.图1示意性地示出了本技术提供的一种补丁包的生成方法的流程示意图,所述方法包括:
59.步骤101,在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库。
60.需要说明的是,补丁代码是用于对已有程序代码的功能进行补充和修改的源代码,可以在编译为二进制代码之后以合并或者替换的方式加入已有程序代码中。打包格式是已有程序代码所处操作系统所适用的数据包格式,通常不同的操作系统所用的打包格式可能不同,因此需要针对不同的操作系统提供不同打包格式的补丁包。编译规则是指编译和打包过程中所需遵循的符号、长度等规则。编译目录是用于存放编译规则的目录文件,还可以用于存放补丁代码。代码仓库是用于存放编译目录的数据库,主要供打包工具调用编译目录来执行编译和打包操作使用。补丁包是指具有打包格式的补丁代码数据包。
61.在本技术实施例中,编译平台在接收到对于某个处于多个不同操作系统下的已有程序代码的补丁代码时,通常需要针对每个操作系统为已有程序代码维护多个补丁代码,补丁代码需要被提交到多个不同操作系统的程序分支中,相应的编译平台也需要针对不同打包格式维护多个用于代码编译的代码仓库,使得编译程序十分冗余。而本技术实施例为了在同一程序分支中对遵循多个打包格式的补丁代码进行编译和打包,首先分别按照每个打包格式相对应的编译规则,将补丁代码放入每个打包格式相对应的编译目录中,而不同的编译目录则被存放在同一代码仓库,从而无需为多个程序分支创建多个代码仓库。
62.步骤102,基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。
63.在本技术实施例中,编译平台通过一个编译程序分支调用同一代码仓库中的多个不同打包格式相对应的编译目录,利用多个编译目录发起对于多个不同打包格式相对应的编译构建任务,即可使得多个编译构建任务并发执行来执行编译和打包操作,生成每个打包格式相对应的补丁包。后续编译平台即可通过将不同打包格式相对应的补丁包下发给不同操作系统的中的已有程序代码,实现通过单一编译程序分支对于多个不同打包格式的补丁包的生成和打包过程。
64.本技术实施例通过将需要被编译为不同打包格式的同一补丁代码,按照不同的编
译规则存放至处于同一代码仓库中编译目录中,从而使得单一程序分支可以通过调用单一代码仓库触发对于多个不同打包格式相对应的编译构建任务来编译和打包成不同多个不同打包格式的补丁包,实现了通过单一程序分支对于多个遵循不同打包格式的补丁包的生成过程,减少了编译程序所需占用的处理资源,提高了编译程序的资源利用率。
65.可选地,参照图2,每个所述编译构建任务的执行步骤如下:
66.步骤201,在执行目标打包格式相对应的编译构建任务时,下载所述代码仓库中所有编译目录。
67.步骤202,删除所述目标打包格式以外打包格式相对应的编译目录。
68.步骤203,基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包。
69.在本技术实施例中,每个编译构建任务是由专用的打包工具执行的,每个打包工具将其所负责的打包格式作为目标打包格式。打包工具在执行编译构建任务时,首先从代码仓库下载所有的编译目录,其中包含有目标打包格式相对应的编译目录,以及其他打包格式相对应的编译目录,因此在编译之前需要在编译规则中写明哪些编译目录参与目标打包格式的补丁包编译过程,哪些编译目录不参与目标打包格式的补丁包编译过程,从而在编译之前删除目标打包格式以外的其他打包格式相对应的编译目录。
70.在删除其他打包格式的编译目录之后,打包工具即可对补丁代码进行编译和打包,来得到目标打包格式下的补丁包。每个打包格式相对应的打包工具均可通过上述方式来编译得到自身所负责目标打包格式相对应的补丁包,从而实现了多个不同打包格式的补丁包的生成和打包过程。
71.本技术实施例通过在将补丁代码编译成不同打包格式的补丁包时,将不参与编译过程的其他打包格式的编译目录进行删除之后才执行补丁包的生成过程,避免了其他打包格式的编译目录参与编译过程,干扰程序代码编译过程的情况出现,保证了通过单一程序分支编译多个打包格式的补丁包的准确性。
72.可选地,所述步骤203,包括:在所述目标打包格式为deb格式时,采用gbp打包工具基于所述deb格式相对应的编译目录进行编译和打包,得到所述deb格式的补丁包,其中,所述gbp打包工具的编译命令至少包括:用于指示所述gbp打包工具忽略由于删除编译目录导致的输入变化的指令。
73.需要说明的是,deb格式是debian软件包格式,文件扩展名为.deb,unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而来。所以deb包本质是一个压缩包文件,里面包含一些特定的目录和文件,安装过程就是dpkg程序按照指定的规则去拷贝文件和执行脚本。
74.在本技术实施例中可采用gbp打包工具对补丁代码进行编译和打包得到deb格式的补丁包,deb格式相对应的编译目录存在debian目录,可删除debian目录以外的其他编译目录。但是需要在gbp打包工具的编译命令中加上例如:
‑‑
git-ignore-new的命令,来指示gbp打包工具忽略因删除编译目录所导致的目录变化。
75.本技术实施里通过为deb格式的打包工具设置用于忽略因删除编译目录所导致的目录变化的编译命令,避免了由于删除其他编译目录所导致的编译错误,保证了通过单一程序分支编译多个打包格式的补丁包的准确性。
76.可选地,所述步骤203,包括:在所述目标打包格式为rpm格式时,采用rpmbuild打包工具基于所述rpm格式相对应的编译目录进行编译和打包,得到所述rpm格式的补丁包。
77.在本技术实施例中,rpm(redhatpackagemanage)格式是一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序。编译平台可选择rpmbuild打包工具对补丁代码进行编译和打包来得到rpm格式的补丁包,由于rpmbuild打包工具不会关注编译目录的修改记录,因此直接采用删除其他编译目录之后剩余的rpm格式的目标编译目录来进行编译即可。
78.可选地,所述打包格式至少包括:deb格式和rpm格式,所述步骤101,包括:
79.步骤1011,将所述补丁代码按照所述deb格式的编译规则,放入所述deb格式相对应的编译目录中。
80.步骤1012,按照所述rpm格式相对应的编译规则,将所述deb格式相对应的编译目录中的补丁代码,软链接到所述rpm格式相对应的编译目录中。
81.在本技术实施例中,考虑到deb格式的编译目录为debian目录,而rpm的编译目录包括sources、specs两个目录,因此可以首先将补丁代码按照deb格式的编译规则存放在debian目录中,然后按照rpm格式的编译规则将debian目录中的补丁代码以软链接的方式存入sources目录和specs目录中,由于软链接是一种保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径,因此可以减少不同打包格式的编译目录放入补丁代码所需的数据处理量。
82.具体的,参照图3,其中gerrit是一种代码审查软件,使用网页界面,可利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。jenkins是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
83.在现有技术中,对于deb格式和rpm格式两个打包格式,需要两个程序分支来分别将deb格式的debian目录提交patch(补丁)给jenkins来编译deb格式的补丁包,将rpm格式的sources目录和specs目录提交patch给jenkins来编译。
84.参照图4,本技术实施例由于deb格式和rpm格式两个打包格式的编译目录之间通过软链接的方式存放在一个代码仓库中,因此可通过一个程序分支提交patch给jenkins来编译补丁包,显然减少了对于同一补丁代码编译多个不同打包格式的补丁包所需的处理量。
85.可选地,所述步骤102的步骤,包括:在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务。
86.在本技术实施例中,考虑到编译平台在向代码仓库提交补丁代码的多个不同编译目录之后需要自动触发多个编译构建任务,因此任务管理器需要通过触发器来监控代码仓库的提交事件,来在多个编译目录的被提交到代码仓库时,自动同时触发多个打包格式的编译构建任务。
87.可选地,所述步骤102的步骤,通过gerrittrigger对代码仓库的提交事件进行监控,在监控到代码仓库的编辑目录的提交时间时,触发基于每个所述编译目录的多个编译构建任务。
88.在本技术实施例中,gerrit上提交patch后,将自动触发两个jenkins任务,一个是
deb格式的编译补丁包,另一个是rpm格式的编译补丁包包。因此jenkins上的deb格式的编译构建任务和rpm格式的编译构建任务,都需要使用gerrittrigger触发器来同时监控gerrit上同一个代码仓库的提交。
89.图5示意性地示出了本技术提供的一种补丁包的生成装置30的结构示意图,所述装置包括:
90.获取模块301,被配置为在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;
91.编译模块302,被配置为基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。
92.可选地,所述编译模块302,还被配置为:
93.在执行目标打包格式相对应的编译构建任务时,下载所述代码仓库中所有编译目录;
94.删除所述目标打包格式以外打包格式相对应的编译目录;
95.基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包。
96.可选地,所述编译模块302,还被配置为:
97.在所述目标打包格式为deb格式时,采用gbp打包工具基于所述deb格式相对应的编译目录进行编译和打包,得到所述deb格式的补丁包,其中,所述gbp打包工具的编译命令至少包括:用于指示所述gbp打包工具忽略由于删除编译目录导致的输入变化的指令。
98.可选地,所述编译模块302,还被配置为:
99.在所述目标打包格式为rpm格式时,采用rpmbuild打包工具基于所述rpm格式相对应的编译目录进行编译和打包,得到所述rpm格式的补丁包。
100.可选地,所述打包格式至少包括:deb格式和rpm格式;
101.所述获取模块301,还被配置为:
102.将所述补丁代码按照所述deb格式的编译规则,放入所述deb格式相对应的编译目录中;
103.按照所述rpm格式相对应的编译规则,将所述deb格式相对应的编译目录中的补丁代码,软链接到所述rpm格式相对应的编译目录中。
104.可选地,所述编译模块302,还被配置为:
105.在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务。
106.可选地,所述编译模块302,还被配置为:
107.通过gerrittrigger对代码仓库的提交事件进行监控,在监控到代码仓库的编辑目录的提交时间时,触发基于每个所述编译目录的多个编译构建任务。
108.本技术实施例通过将需要被编译为不同打包格式的同一补丁代码,按照不同的编译规则存放至处于同一代码仓库中编译目录中,从而使得单一程序分支可以通过调用单一代码仓库触发对于多个不同打包格式相对应的编译构建任务,实现了通过单一程序分支对
于多个遵循不同打包格式的补丁包的生成过程,减少了编译程序所需占用的处理资源,提高了编译程序的资源利用率。
109.以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
110.本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在非瞬态计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
111.例如,图6示出了可以实现根据本技术的方法的计算处理设备。该计算处理设备传统上包括处理器410和以存储器420形式的计算机程序产品或者非瞬态计算机可读介质。存储器420可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器420具有用于执行上述方法中的任何方法步骤的程序代码431的存储空间430。例如,用于程序代码的存储空间430可以包括分别用于实现上面的方法中的各种步骤的各个程序代码431。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图7所述的便携式或者固定存储单元。该存储单元可以具有与图6的计算处理设备中的存储器420类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码431’,即可以由例如诸如410之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。
112.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
113.本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本技术的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
114.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
115.在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
116.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:
1.一种补丁包的生成方法,其特征在于,所述方法包括:在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。2.根据权利要求1所述的方法,其特征在于,每个所述编译构建任务的执行步骤如下:在执行目标打包格式相对应的编译构建任务时,下载所述代码仓库中所有编译目录;删除所述目标打包格式以外打包格式相对应的编译目录;基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译和打包,得到所述目标打包格式相对应的补丁包。3.根据权利要求2所述的方法,其特征在于,所述基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译之后打包为所述目标打包格式,得到所述目标打包格式相对应的补丁包的步骤,包括:在所述目标打包格式为deb格式时,采用gbp打包工具基于所述deb格式相对应的编译目录进行编译和打包和打包,得到所述deb格式的补丁包,其中,所述gbp打包工具的编译命令至少包括:用于指示所述gbp打包工具忽略由于删除编译目录导致的输入变化的指令。4.根据权利要求2所述的方法,其特征在于,所述基于所述目标打包格式相对应的编译目录对所述补丁代码进行编译之后打包为所述目标打包格式,得到所述目标打包格式相对应的补丁包的步骤,包括:在所述目标打包格式为rpm格式时,采用rpmbuild打包工具基于所述rpm格式相对应的编译目录进行编译和打包和打包,得到所述rpm格式的补丁包。5.根据权利要求1所述的方法,其特征在于,所述打包格式至少包括:deb格式和rpm格式;所述将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中的步骤,包括:将所述补丁代码按照所述deb格式的编译规则,放入所述deb格式相对应的编译目录中;按照所述rpm格式相对应的编译规则,将所述deb格式相对应的编译目录中的补丁代码,软链接到所述rpm格式相对应的编译目录中。6.根据权利要求1所述的方法,其特征在于,所述基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务的步骤,包括:在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务。7.根据权利要求6所述的方法,其特征在于,所述在触发器监控到所述代码仓库的提交事件时,触发对于所述代码仓库中每个编译目录的编译构建任务的步骤,包括:通过gerrittrigger对代码仓库的提交事件进行监控,在监控到代码仓库的编辑目录的提交时间时,触发基于每个所述编译目录的多个编译构建任务。8.一种补丁包的生成装置,其特征在于,所述装置包括:
获取模块,被配置为在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;编译模块,被配置为基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。9.一种计算处理设备,其特征在于,包括:存储器,其中存储有计算机可读代码;一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如权利要求1-7中任一项所述的补丁包的生成方法。10.一种非瞬态计算机可读介质,其特征在于,存储计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行如权利要求1-7中任一项的所述的补丁包的生成方法。
技术总结
本申请提供的补丁包的生成方法、装置、电子设备及可读介质,属于计算机技术领域。所述方法包括:在获取到补丁代码时,将所述补丁代码分别按照至少两个打包格式相对应的编译规则,放入每个所述打包格式相对应的编译目录中,并将每个编译目录存入同一代码仓库;基于所述代码仓库中的至少两个所述编译目录同时触发对于所述补丁代码的至少两个编译构建任务,以对所述补丁代码基于所述编译规则进行编译和打包,得到每个所述打包格式相对应的补丁包。包。包。
技术研发人员:唐婉玲 王洪虎
受保护的技术使用者:龙芯中科技术股份有限公司
技术研发日:2023.06.30
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/