CN111338632A - 一种云平台镜像构建方法和装置 - Google Patents

一种云平台镜像构建方法和装置 Download PDF

Info

Publication number
CN111338632A
CN111338632A CN201811559493.7A CN201811559493A CN111338632A CN 111338632 A CN111338632 A CN 111338632A CN 201811559493 A CN201811559493 A CN 201811559493A CN 111338632 A CN111338632 A CN 111338632A
Authority
CN
China
Prior art keywords
code
mirror image
test
incremental
warehouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811559493.7A
Other languages
English (en)
Inventor
吴桂祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Henan Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Henan Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Henan Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201811559493.7A priority Critical patent/CN111338632A/zh
Publication of CN111338632A publication Critical patent/CN111338632A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Abstract

本发明实施例提供一种云平台镜像构建方法和装置,其中所述方法包括:若判断获知代码仓库的开发分支代码发生变化,则从开发分支代码中提取增量代码,并对增量代码进行编译;若增量代码编译成功,则将增量代码合并至代码仓库的测试分支代码中,以使得云平台检测到测试分支代码发生变化后,能够基于测试分支代码构建镜像,并同步至云平台。本发明实施例提供的方法和装置,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。

Description

一种云平台镜像构建方法和装置
技术领域
本发明实施例涉及云平台技术领域,尤其涉及一种云平台镜像构建方法和装置。
背景技术
随着云平台的出现,用户对于云产品的使用越来越频繁,原先部署在虚机上的应用也都逐步迁移至云平台的容器化环境中。容器化环境中的镜像封装了应用需要的全部环境,只要主机与云平台对接,即可将镜像调度到该主机上运行。
目前云平台构建镜像的方式主要有以下两种:其一是通过云平台自身的CI/CD(Continuous Integration/Continuous Deployment,持续集成/持续部署)直接对接代码仓库,通过全量代码拉取、编译和镜像构建实现云平台镜像的构建。其二是手动构建镜像,即运维人员手工合并代码、编译、构建镜像,并将镜像推动到镜像仓库,进行应用更新。
由此可知,每次构建镜像都需要从代码仓库拉取全量代码进行编译构建,代码仓库中的开发分支作为云平台对接编译路径,是所有开发人员进行开发的,全量编译会造成全部开发人员代码进行编译上线,可能造成编译失败。此外,代码仓库存在开发分支和测试分支的情况下,每次上线时都要运维人员进行代码合并,会消耗大量时间,且人工合并错误率高。
发明内容
本发明实施例提供一种云平台镜像构建方法和装置,用以解决现有的云平台镜像需要全量代码编译,编译失败风险大,人工合并耗时长,错误率高的问题。
第一方面,本发明实施例提供一种云平台镜像构建方法,包括:
若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;
若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
第二方面,本发明实施例提供一种云平台镜像构建方法,包括:
若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;
其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
第三方面,本发明实施例提供一种云平台镜像构建装置,包括:
增量编译单元,用于若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;
增量合并单元,用于若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
第四方面,本发明实施例提供一种云平台镜像构建装置,包括:
触发单元,用于判断代码仓库的测试分支代码是否发生变化;
镜像单元,用于若所述代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;
其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
第五方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如第一方面或第二方面所提供的方法的步骤。
第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所提供的方法的步骤。
本发明实施例提供的一种云平台镜像构建方法和装置,从开发分支代码中提取增量代码并编译,将编译成功的增量代码与测试分支代码合并后用于镜像构建,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的云平台镜像构建方法的流程示意图;
图2为本发明另一实施例提供的云平台镜像构建方法的流程示意图;
图3为本发明又一实施例提供的云平台镜像构建方法的流程示意图;
图4为本发明实施例提供的云平台镜像构建装置的结构示意图;
图5为本发明另一实施例提供的云平台镜像构建装置的结构示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有的云平台镜像需要全量代码编译,编译失败风险大,人工合并耗时长,错误率高的问题,本发明实施例提供了一种云平台镜像构建方法。图1为本发明实施例提供的云平台镜像构建方法的流程示意图,如图1所示,该方法的执行主体为编译工具,此处编译工具可以是任意与代码仓库连接的处理单元,该方法包括:
110,若判断获知代码仓库的开发分支代码发生变化,则从开发分支代码中提取增量代码,并对增量代码进行编译。
具体地,代码仓库即用于存储代码的仓库,本发明实施例中的代码仓库包括两个分支,开发分支和测试分支。其中,开发分支用于存在开发人员开发的代码,测试分支用于存放构建镜像所需的代码,开发分支代码即开发分支存储的代码,测试分支代码即测试分支存储的代码。
开发人员在对代码进行修改后,将修改后的代码提交到代码仓库的开发分支。编译工具定时对开发分支代码进行扫描,检测开发分支代码是否存在变化,即检测开发人员是否对开发分支代码进行了更新。如果编译工具没有检测到开发分支代码发生变化,则继续进行扫描。如果编译工具检测到开发分支代码发生变化,则从开发分支代码中提取增量代码。此处,增量代码是指与上一版本的开发分支代码相比,开发人员进行了改动或者增加了的代码的部分。在得到增量代码之后,编译工具单独对增量代码进行编译。
120,若增量代码编译成功,则将增量代码合并至代码仓库的测试分支代码中,以使得云平台检测到测试分支代码发生变化后,能够基于测试分支代码构建镜像,并同步至云平台。
具体地,对增量代码进行编译后,如果增量代码编译成功,编译工具直接将增量代码与测试分支代码进行合并。云平台自身的CI/CD直接对接代码仓库,并实时监控测试分支代码的变化。在编译工具执行增量代码和测试分支代码的合并时,云平台能够检测到测试分支代码发生变化,随即基于合并后的测试分支代码构建镜像,并同步至云平台,完成云平台镜像的构建。
本发明实施例提供的方法,从开发分支代码中提取增量代码并编译,将编译成功的增量代码与测试分支代码合并后用于镜像构建,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。
基于上述任一实施例,步骤110具体包括:
111,若判断获知代码仓库的开发分支代码发生变化,则将开发分支代码更新至本地。
具体地,开发人员在对代码进行修改后,将修改后的代码提交到代码仓库的开发分支。编译工具定时对开发分支代码进行扫描,检测开发分支代码是否存在变化。如果编译工具检测到开发分支代码发生变化,则将代码仓库中的开发分支代码更新至本地,以便于后续在本地对开发分支代码进行处理,避免影响代码仓库中存放的开发分支代码。
112,基于文件列表定位并提取开发分支代码中的增量代码。
此处,文件列表是指标注有修改后的代码列表的列表文件,文件列表可以是由开发人员编写并在提交修改后的代码的同时提交到代码仓库的,随即编译工具可以从代码仓库获取文件列表,进而基于文件列表定位开发分支代码中进行修改的部分,即增量代码。在定位增量代码后,编译工具从本地的开发分支代码中提取增量代码。
113,对增量代码进行编译。
本发明实施例提供的方法,通过文件列表定位并提取开发分支代码中的增量代码,从而实现增量代码的编译,解决了全量编译的编译失败风险高的问题。
基于上述任一实施例,步骤110之后,还包括:若增量代码编译失败,则回滚增量代码。
具体地,对增量代码进行编译,编译结果为编译成功或失败。若编译成功,则执行步骤120。若编译失败,则回滚增量代码,告知开发人员对代码进行修改后再重新提交。
基于上述任一实施例,图2为本发明另一实施例提供的云平台镜像构建方法的流程示意图,如图2所示,该方法的执行主体为云平台,该方法包括:
210,判断代码仓库的测试分支代码是否发生变化。其中,测试分支代码的变化是由编译工具在判断获知代码仓库的开发分支代码发生变化时,从开发分支代码中提取增量代码,并对增量代码进行编译,编译成功后将增量代码合并至测试分支代码导致的。
具体地,开发人员在对代码进行修改后,将修改后的代码提交到代码仓库的开发分支。编译工具定时对开发分支代码进行扫描,检测开发分支代码是否存在变化。如果编译工具检测到开发分支代码发生变化,则从开发分支代码中提取增量代码。此处,增量代码是指与上一版本的开发分支代码相比,开发人员进行了改动或者增加了的代码的部分。在得到增量代码之后,编译工具单独对增量代码进行编译。如果增量代码编译成功,编译工具直接将增量代码与测试分支代码进行合并。
云平台自身的CI/CD直接对接代码仓库,并实时监控测试分支代码的变化。在编译工具执行增量代码和测试分支代码的合并时,云平台能够检测到测试分支代码发生变化。
220,若代码仓库的测试分支代码发生变化,则基于测试分支代码构建镜像,并同步至云平台。
具体地,若检测到编译工具将编译成功的增量代码与测试分支代码合并,即测试分支代码发生变化,则云平台基于测试分支代码构建镜像,并将构建得到的镜像同步至云平台。
本发明实施例提供的方法,编译工具从开发分支代码中提取增量代码并编译,将编译成功的增量代码与测试分支代码合并后用于云平台的镜像构建,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。
基于上述任一实施例,步骤220具体包括:
221,若代码仓库的测试分支代码发生变化,则基于测试分支代码构建镜像,并将镜像推送至镜像仓库的测试仓库。
具体地,若检测到编译工具将编译成功的增量代码与测试分支代码合并,即测试分支代码发生变化,则云平台基于测试分支代码构建镜像。镜像构建完成后,将构建得到的镜像推送到镜像仓库的测试仓库。此处,镜像仓库即用于存储镜像的仓库,本发明实施例中的镜像仓库包括测试仓库和生产仓库,其中测试仓库用于对镜像进行测试,通过测试的镜像可以同步到生产仓库,生产仓库中存储有通过测试的镜像,生产仓库用于发布镜像到云平台的生产环境运行。
222,基于镜像对测试环境进行部署更新,基于测试环境对镜像进行测试。具体地,在将镜像推送至测试仓库后,基于镜像对测试环境进行部署更新。此处,测试环境是云平台中的测试环境,
223,若测试通过,则将镜像从测试仓库同步至镜像仓库的生产仓库。
具体地,在基于更新后的测试环境对镜像进行测试后,如果测试通过,则将部署在镜像仓库中的测试仓库的镜像,同步到镜像仓库的生产仓库中。
224,基于生产仓库中的镜像更新生产环境。
具体地,在将镜像同步至生产仓库后,基于生产仓库中的镜像更新云平台的生产环境,完成云平台镜像的上线。
基于上述任一实施例,步骤222之后,还包括:若测试不通过,则发出测试失败信息。
具体地,在基于更新后的测试环境对镜像进行测试后,如果测试不通过,则云平台发出测试失败信息,告知开发人员对代码进行修改后再重新提交。
基于上述任一实施例,图3为本发明又一实施例提供的云平台镜像构建方法的流程示意图,如图3所示,云平台镜像构建方法,包括如下步骤:
首先,开发人员编写新增项目代码,并填写新增项目的相关信息,例如项目名称等。随后将新增项目代码与包含有新增项目代码的文件列表上传至代码仓库的开发分支中的指定目录下。
编译工具定时对开发分支代码进行扫描,检测开发分支代码是否存在变化,即检测开发人员是否提交了新的代码。如果编译工具检测到开发分支代码发生变化,则将开发分支代码更新至本地。随后,编译工具基于文件列表定位开发分支代码中进行修改的部分,即增量代码。在定位增量代码后,编译工具从本地的开发分支代码中提取增量代码,并对增量代码进行编译。如果增量代码编译成功,则编译工具直接将增量代码与代码仓库中的测试分支代码进行合并。如果增量代码编译失败,则回滚增量代码,告知开发人员对代码进行修改后再重新提交。
云平台自身的CI/CD直接对接代码仓库,并实时监控测试分支代码的变化。在编译工具执行增量代码和测试分支代码的合并时,云平台能够检测到测试分支代码发生变化。若检测到编译工具将编译成功的增量代码与测试分支代码合并,即测试分支代码发生变化,则云平台基于测试分支代码构建镜像,并将镜像推送至镜像仓库的测试仓库。此后,云平台基于镜像对云平台的测试环境进行部署更新。更新完成后,基于测试环境对镜像进行测试。如果测试成功,则将镜像从测试仓库同步至镜像仓库的生产仓库,并基于生产仓库中的镜像更新云平台的生产环境,完成云平台镜像的上线。如果测试失败,则云平台发出测试失败信息,告知开发人员对代码进行修改后再重新提交。
本发明实施例提供的方法,编译工具从开发分支代码中提取增量代码并编译,将编译成功的增量代码与测试分支代码合并后用于云平台的镜像构建,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。
基于上述任一实施例,基于测试分支代码构建镜像,具体包括构建Base镜像和构建增量包镜像两种;
其中,构建Base镜像即从项目的基线全量包拉取业务包,并基于测试分支代码构建base镜像。构建增量包镜像需要首先上传增量包,并分析增量包标识,随后查找与增量包标识关联的对应镜像,并获取镜像的指定版本,并将镜像的指定版本的业务包拷贝至新版本工作空间,并进行覆盖。将指定版本的业务包作为基线版本,并基于测试分支代码构建增量包镜像。
基于上述任一实施例,图4为本发明实施例提供的云平台镜像构建装置的结构示意图,如图4所示,一种云平台镜像构建装置,包括增量编译单元410和增量合并单元420;
其中,增量编译单元410用于若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;
增量合并单元420用于若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
本发明实施例提供的装置,编译工具从开发分支代码中提取增量代码并编译,将编译成功的增量代码与测试分支代码合并后用于云平台的镜像构建,相比传统的全量编译,仅对增量代码进行编译,降低了编译失败的风险。此外,仅在编译成功后合并增量代码,避免了后续镜像构建失败的问题。自动合并增量代码与测试分支代码,相比手动合并效率更高,错误率更低。
基于上述任一实施例,增量编译单元410包括触发子单元、定位子单元和编译子单元;
其中,触发子单元用于若判断获知代码仓库的开发分支代码发生变化,则将所述开发分支代码更新至本地;
定位子单元用于基于文件列表定位并提取所述开发分支代码中的所述增量代码;
编译子单元用于对所述增量代码进行编译。
基于上述任一实施例,该装置该包括返回单元;返回单元用于若所述增量代码编译失败,则回滚所述增量代码。
基于上述任一实施例,图5为本发明另一实施例提供的云平台镜像构建装置的结构示意图,如图5所示,一种云平台镜像构建装置,包括触发单元510和镜像单元520;
其中,触发单元510用于判断代码仓库的测试分支代码是否发生变化;
镜像单元520用于若所述代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;
其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
基于上述任一实施例,镜像单元520包括构建子单元、部署子单元、测试子单元和上线子单元;
其中,构建子单元用于若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并将所述镜像推送至镜像仓库的测试仓库;
部署子单元用于基于所述镜像对测试环境进行部署更新,基于所述测试环境对所述镜像进行测试;
测试子单元用于若测试通过,则将所述镜像从所述测试仓库同步至所述镜像仓库的生产仓库;
上线子单元用于基于所述生产仓库中的所述镜像更新生产环境。
基于上述任一实施例,镜像单元520还包括失败子单元;失败子单元用于若测试不通过,则发出测试失败信息。
图6为本发明实施例提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储在存储器603上并可在处理器601上运行的计算机程序,以执行上述各实施例提供的云平台镜像构建方法,例如包括:若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
处理器601还可以调用存储在存储器603上并可在处理器601上运行的计算机程序,以执行上述各实施例提供的云平台镜像构建方法,例如包括:若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的云平台镜像构建方法,例如包括:若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的云平台镜像构建方法,例如包括:若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种云平台镜像构建方法,其特征在于,包括:
若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;
若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
2.根据权利要求1所述的方法,其特征在于,若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,具体包括:
若判断获知代码仓库的开发分支代码发生变化,则将所述开发分支代码更新至本地;
基于文件列表定位并提取所述开发分支代码中的所述增量代码;
对所述增量代码进行编译。
3.根据权利要求1所述的方法,其特征在于,所述若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,之后还包括:
若所述增量代码编译失败,则回滚所述增量代码。
4.一种云平台镜像构建方法,其特征在于,包括:
若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;
其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
5.根据权利要求4所述的方法,其特征在于,所述若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台,具体包括:
若判断获知代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并将所述镜像推送至镜像仓库的测试仓库;
基于所述镜像对测试环境进行部署更新,基于所述测试环境对所述镜像进行测试;
若测试通过,则将所述镜像从所述测试仓库同步至所述镜像仓库的生产仓库;
基于所述生产仓库中的所述镜像更新生产环境。
6.根据权利要求5所述的方法,其特征在于,所述基于所述镜像对测试环境进行部署更新,基于所述测试环境对所述镜像进行测试,之后还包括:
若测试不通过,则发出测试失败信息。
7.一种云平台镜像构建装置,其特征在于,包括:
增量编译单元,用于若判断获知代码仓库的开发分支代码发生变化,则从所述开发分支代码中提取增量代码,并对所述增量代码进行编译;
增量合并单元,用于若所述增量代码编译成功,则将所述增量代码合并至所述代码仓库的测试分支代码中,以使得所述云平台检测到所述测试分支代码发生变化后,能够基于所述测试分支代码构建镜像,并同步至所述云平台。
8.一种云平台镜像构建装置,其特征在于,包括:
触发单元,用于判断代码仓库的测试分支代码是否发生变化;
镜像单元,用于若所述代码仓库的测试分支代码发生变化,则基于所述测试分支代码构建镜像,并同步至云平台;
其中,所述测试分支代码的变化是由编译工具在判断获知所述代码仓库的开发分支代码发生变化时,从所述开发分支代码中提取增量代码,并对所述增量代码进行编译,编译成功后将所述增量代码合并至所述测试分支代码导致的。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如权利要求1至6任一所述的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一所述的方法。
CN201811559493.7A 2018-12-19 2018-12-19 一种云平台镜像构建方法和装置 Pending CN111338632A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811559493.7A CN111338632A (zh) 2018-12-19 2018-12-19 一种云平台镜像构建方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811559493.7A CN111338632A (zh) 2018-12-19 2018-12-19 一种云平台镜像构建方法和装置

Publications (1)

Publication Number Publication Date
CN111338632A true CN111338632A (zh) 2020-06-26

Family

ID=71183207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811559493.7A Pending CN111338632A (zh) 2018-12-19 2018-12-19 一种云平台镜像构建方法和装置

Country Status (1)

Country Link
CN (1) CN111338632A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127036A (zh) * 2021-04-16 2021-07-16 展讯通信(上海)有限公司 软件开发系统、代码的持续集成方法、装置和介质
CN114610329A (zh) * 2022-05-10 2022-06-10 深圳佰维存储科技股份有限公司 固态硬盘部署方法、装置、可读存储介质及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187500A (zh) * 2015-08-07 2015-12-23 浪潮(北京)电子信息产业有限公司 一种基于容器的分布式存储系统部署方法
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN106484606A (zh) * 2015-09-01 2017-03-08 阿里巴巴集团控股有限公司 一种代码提交方法和设备
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN107729066A (zh) * 2017-11-08 2018-02-23 重庆扬讯软件技术股份有限公司 一种基于svn资源库自动化构建发布方法与装置
CN107766126A (zh) * 2017-11-15 2018-03-06 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187500A (zh) * 2015-08-07 2015-12-23 浪潮(北京)电子信息产业有限公司 一种基于容器的分布式存储系统部署方法
CN106484606A (zh) * 2015-09-01 2017-03-08 阿里巴巴集团控股有限公司 一种代码提交方法和设备
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN107729066A (zh) * 2017-11-08 2018-02-23 重庆扬讯软件技术股份有限公司 一种基于svn资源库自动化构建发布方法与装置
CN107766126A (zh) * 2017-11-15 2018-03-06 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐星;李银桥;刘学锋;毛建华;: "企业开发、测试环境快速部署方案的设计与实现", 工业控制计算机, no. 03 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127036A (zh) * 2021-04-16 2021-07-16 展讯通信(上海)有限公司 软件开发系统、代码的持续集成方法、装置和介质
CN114610329A (zh) * 2022-05-10 2022-06-10 深圳佰维存储科技股份有限公司 固态硬盘部署方法、装置、可读存储介质及电子设备
CN114610329B (zh) * 2022-05-10 2022-09-06 深圳佰维存储科技股份有限公司 固态硬盘部署方法、装置、可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN106484606B (zh) 一种代码提交方法和设备
US8984489B2 (en) Quality on submit process
CN106610854B (zh) 一种模型更新方法及装置
US7603393B1 (en) Software merging utility
US10353807B2 (en) Application development management
CN112527349A (zh) 动态部署策略优化及持续部署业务保障系统
CN108776643B (zh) 一种基于版本控制流程的目标代码合并控制方法及系统
US10303469B1 (en) Commit graph generation
US10255065B1 (en) Automatically building software projects
CN109840194B (zh) 一种配置文件的检测方法及系统
CN108536597A (zh) 一种终端测试方法、装置、终端设备及存储介质
US11580008B2 (en) Method and system for synchronous development and testing of live, multi-tenant microservices based SaaS systems
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN111338632A (zh) 一种云平台镜像构建方法和装置
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
JP6481387B2 (ja) 関連情報提供方法、関連情報提供装置及び関連情報提供プログラム
CN114297056A (zh) 一种自动化测试方法及系统
US9454361B2 (en) System and method of merging of objects from different replicas
CN113190447A (zh) 一种代码自动合并的方法、装置、设备及存储介质
CN115016808A (zh) 一种前端应用部署方法及装置
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
JP2022108452A (ja) プログラム管理装置及びプログラム管理方法
TWI735511B (zh) 代碼提交方法和設備
Pastrana-Pardo et al. Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities
CN109240737A (zh) 一种在大数据平台上打包发布的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination