CN107967211A - 一种存储设备代码分发方法、系统、装置及可读存储介质 - Google Patents
一种存储设备代码分发方法、系统、装置及可读存储介质 Download PDFInfo
- Publication number
- CN107967211A CN107967211A CN201711269011.XA CN201711269011A CN107967211A CN 107967211 A CN107967211 A CN 107967211A CN 201711269011 A CN201711269011 A CN 201711269011A CN 107967211 A CN107967211 A CN 107967211A
- Authority
- CN
- China
- Prior art keywords
- machine
- compiling
- local
- storage device
- code
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种存储设备代码分发方法,包括连接本地编译机;利用所述本地编译机在构建机中构建目标代码;利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;利用所述本地编译机将所述编译结果分发至存储设备。由此可见,本发明实施例提供的一种存储设备代码分发方法,可以直接利用本地编译机与构建机交互,完成对存储设备代码的构建以及分发,由本地编译机代替Jenkins的工作,可以极大程度上缓解Jenkins构建iso的压力,也提高了研发的效率。本发明实施例还提供了一种存储设备代码分发系统、装置及计算机可读存储介质,同样可以实现上述技术效果。
Description
技术领域
本发明涉及开发调试技术领域,更具体地说,涉及一种存储设备代码分发方法、系统、装置及计算机可读存储介质。
背景技术
目前,在项目开发过程中需要项目组研发人员在编译打包iso,而编译打包iso的过程需由jenkins构建iso。
现有技术中构建iso的过程,首选在sandbox中修改上传代码到gitlab,然后必须登录jenkins进行编译构建。如果每天有100人进行编译验证工作,则jenkins每天要承载100人的编译构建工作。jenkins限制同时编译的最大数量为4个,假设只有一台officalbuild machine承担构建工作,每个人编译用时1小时,则100人使用jenkins编译,需耗时25小时,方可完成所有人员的构建工作。这种方案严重影响了研发效率。
由于sandbox仅仅只能编译,并不能分发ftp,导致工作效率较低,无法满足日常研发人员debug调试工作,且sandbox与build machine之间,可能会由于环境不同,导致潜在的问题风险。
因此,如何提高代码分发的工作效率,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种存储设备代码分发方法、系统、装置及计算机可读存储介质,以提高代码分发的工作效率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种存储设备代码分发方法,包括:
连接本地编译机;
利用所述本地编译机在构建机中构建目标代码;
利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;
利用所述本地编译机将所述编译结果分发至存储设备。
其中,所述连接本地编译机,包括:
利用VDI登录所述本地编译机。
其中,所述利用所述本地编译机在构建机中构建目标代码,包括:
利用所述本地编译机从gitlab仓库复制目标集成环境到构建机中;
利用所述本地编译机修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
其中,所述本地编译机为sandbox。
为解决上述技术问题,本发明还提供了一种存储设备代码分发系统,包括:
连接模块,用于连接本地编译机;
构建模块,用于利用所述本地编译机在构建机中构建目标代码;
编译模块,用于利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;
分发模块,用于利用所述本地编译机将所述编译结果分发至存储设备。
其中,所述连接模块,具体用于利用VDI登录所述本地编译机。
其中,所述构建模块包括:
集成环境复制单元,用于利用所述本地编译机从gitlab仓库复制目标集成环境到构建机中;
目标代码同步单元,用于利用所述本地编译机修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
其中,所述本地编译机为sandbox。
本发明还提供了一种存储设备代码分发装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述存储设备代码分发方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述存储设备代码分发方法的步骤。
通过以上方案可知,本发明实施例提供的一种存储设备代码分发方法,包括连接本地编译机;利用所述本地编译机在构建机中构建目标代码;利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;利用所述本地编译机将所述编译结果分发至存储设备。
由此可见,本发明实施例提供的一种存储设备代码分发方法,可以直接利用本地编译机与构建机交互,完成对存储设备代码的构建以及分发,由本地编译机代替Jenkins的工作,可以极大程度上缓解Jenkins构建iso的压力,也提高了研发的效率。本发明实施例还提供了一种存储设备代码分发系统、装置及计算机可读存储介质,同样可以实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种存储设备代码分发方法流程图;
图2为本发明实施例公开的一种具体的存储设备代码分发方法流程图;
图3为本发明实施例公开的一种具体的存储设备代码分发方法流程图;
图4为本发明实施例公开的一种存储设备代码分发系统结构示意图;
图5为本发明实施例公开的一种具体的存储设备代码分发系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种存储设备代码分发方法,以提高代码分发的工作效率。
参见图1,本发明实施例提供的一种存储设备代码分发方法,包括:
S101,连接本地编译机。
具体地,首先连接本地编译机,其中本地编译机可以是sandbox,连接方式可以是通过VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)登录sandbox。
S102,利用所述本地编译机在构建机中构建目标代码。
在本方案中,利用本地编译机在构建机中构建目标代码,具体地,可以是在本地编译机内修改存储设备的代码,然后同步到构建机中,其中构建机需要有集成环境,集成环境可以是通过本地编译机从gitlab仓库中复制到构建机的。
S103,利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果。
具体地,可以在本地编译机中执行相关命令,让构建机对上述代码开始编译。
S104,利用所述本地编译机将所述编译结果分发至存储设备。
具体地,在本地编译机中执行分发指令,将构建机中的编译结果分发到FTP(FileTransfer Protocol,文件传输协议)存储设备上,以使研发人员从FTP存储设备上下载相应的编译结果,然后将编译结果文件上传到相应的存储设备上,将相应存储设备上的与编译结果对应的文件替换为这个编译结果,完成验证。
由此可见,本发明实施例提供的一种存储设备代码分发方法,可以直接利用本地编译机与构建机交互,完成对存储设备代码的构建以及分发,由本地编译机代替Jenkins的工作,可以极大程度上缓解Jenkins构建iso的压力,也提高了研发的效率。
本发明实施例提供一种具体的存储设备代码分发方法,下文描述的一种具体的存储设备代码分发方法可以上述实施例介绍的方法相互参照。
参见图2,本发明实施例的一种具体地存储设备代码分发方法,具体包括:
S201,利用VDI登录sandbox。
S202,利用所述sandbox从gitlab仓库复制目标集成环境到构建机中。
具体的,在本方案中,sandbox作为本地编译机,首先利用VDI登录到sandbox,然后利用sandbox从gitlab仓库中复制集成环境,即svcbuild分支到构建机build machine。
S203,利用所述sandbox修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
具体的,在sandbox内修改存储设备对应的代码,得到修改后的目标代码,然后将目标代码同步到构建机build machine上。
S204,利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果。
具体地,在sandbox中执行相关的命令,让构建机开始编译目标代码,得到编译结果,其中,编译结果可以是一个文件。
S205,利用所述本地编译机将所述编译结果分发至存储设备。
具体的,在sandbox中执行分发指令,将构建机中编译得到的编译结果文件分发到指定的存储设备中。
可见,本发明实施例提供的一种具体的存储设备代码分发方法,利用sandbox既与gitlab数据交互,又与build machine交互,释放了由Jenkins进行构建iso的压力。而对于Jenkins可以在正式版本iso构建工作中使用。从而本发明实施例提供的方法可以在极大程度上缓解jenkins构建iso压力,该方案实行后,jenkins仅负责正式发布版本的构建;同时提高了研发效率。以100人*1次/天,每次构建耗费1人时计算,使用一台official buildmachine,此方案完成一次100人编译构建,可优化构建时间24人时。
本发明实施例提供一种具体的存储设备代码分发方法,下文描述的一种具体的存储设备代码分发方法可以上述实施例介绍的方法相互参照。
参见图3,本发明实施例的一种具体地存储设备代码分发方法,具体包括:
S301,利用VDI登录个人sandbox。
S302,在sandbox内从gitlab仓库clone需要的svcbuild分支到build machine上。
具体地,登录到sandbox后,在sandbox从gitlab仓库中clone本次操作需要的集成环境即svcbuild分支,将其clone到构建机build machine中,其中命令行如下:
ssh-l builder 100.3.6.181"cd/home/tmp/zhangsan/;
git clone zhangsan:password@repo–b branch name"
S303,在sandbox内修改mcs代码,并同步到buildmachine上。
在本方案中,mcs代码为存储设备的代码,首先在sandbox内修改mcs代码,然后将修改后的代码同步到buildmachine上。其中,执行本步骤的命令行如下:
ssh-l builder 100.3.6.181"cd/home/tmp/zhangsan/;git clone zhangsan:password@repo–b branch name"
ssh-l builder 100.3.6.181"cd/home/tmp/zhangsan/;scp–r builder@100.3.6.182://home/tmp/zhangsan/./"
S304,在sandbox内执行make命令,让build machine开始编译。
具体地,在sandbox内执行命令使build machine开始编译上述同步到buildmachine中的代码,得到编译结果。本步骤中的操作命令行如下:
ssh-l builder 100.3.6.181"cd/home/tmp/zhangsan/svc_build/src/;make。
S305,在sandbox内执行分发指令,将buildmachine的编译输出分发到指定存储设备上。
需要说明的是,上述每一个步骤中的命令行内容只是在本方案中具体的举例说明,并不是本发明实施例的具体限定。
下面对本发明实施例提供的一种存储设备代码分发系统进行介绍,下文描述的一种存储设备代码分发系统与上文描述的一种存储代码分发方法可以相互参照。
参见图4,本发明实施例提供的一种存储设备代码分发系统,具体包括:
连接模块401,用于连接本地编译机。
具体地,首先连接模块401连接本地编译机,其中本地编译机可以是sandbox,连接方式可以是通过VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)登录sandbox。
构建模块402,用于利用所述本地编译机在构建机中构建目标代码。
在本方案中,构建模块402利用本地编译机在构建机中构建目标代码,具体地,可以是在本地编译机内修改存储设备的代码,然后同步到构建机中,其中构建机需要有集成环境,集成环境可以是通过本地编译机从gitlab仓库中复制到构建机的。
编译模块403,用于利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果。
具体地,编译模块403可以在本地编译机中执行相关命令,让构建机对上述代码开始编译。
分发模块404,用于利用所述本地编译机将所述编译结果分发至存储设备。
具体地,分发模块404在本地编译机中执行分发指令,将构建机中的编译结果分发到FTP存储设备上,以使研发人员从FTP上下载相应的编译结果,然后将编译结果文件上传到相应的需要替换此编译结果的存储设备上,将相应存储设备上的与编译结果对应的文件替换为这个编译结果,完成验证。
由此可见,本发明实施例提供的一种存储设备代码分发系统,构建模块402与编译模块403可以直接利用本地编译机与构建机交互,使分发模块404完成对存储设备代码的构建以及分发,由本地编译机代替Jenkins的工作,可以极大程度上缓解Jenkins构建iso的压力,提高了研发的效率。
本发明实施例提供一种具体的存储设备代码分发系统,下文描述的一种具体的存储设备代码分发系统可以与上述实施例介绍的方法相互参照。
参见图5,本发明实施例的一种具体地存储设备代码分发系统,具体包括:
登录模块501,利用VDI登录sandbox。
构建模块402,用于利用所述本地编译机在构建机中构建目标代码。在本方案中,构建模块402中包括:
集成环境复制单元502,用于利用所述本地编译机从gitlab仓库复制目标集成环境到构建机中;
目标代码同步单元503,用于利用所述本地编译机修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
具体的,在本方案中,sandbox作为本地编译机,首先登录模块501利用VDI登录到sandbox,然后集成环境复制单元502利用sandbox从gitlab仓库中复制集成环境,即svcbuild分支到构建机build machine。
然后目标代码同步单元503在sandbox内修改存储设备对应的代码,得到修改后的目标代码,然后将目标代码同步到构建机build machine上。
编译模块403,用于利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果。
具体地,编译模块403可以在本地编译机中执行相关命令,让构建机对上述代码开始编译。
分发模块404,用于利用所述本地编译机将所述编译结果分发至存储设备。
下面对本发明实施例提供的一种存储设备代码分发装置进行介绍,下文描述的一种存储代码分发装置与上文描述的一种存储代码分发方法可以相互参照。
本发明实施例提供的一种存储设备代码分发装置,具体包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一方法实施例所述存储设备代码分发方法的步骤。
下面对本发明实施例提供的一种计算机可读存储介质进行介绍,下文描述的一种计算机可读存储介质与上文描述的一种存储代码分发方法可以相互参照。
本发明实施例提供的一种计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一方法实施例所述存储设备代码分发方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种存储设备代码分发方法,其特征在于,包括:
连接本地编译机;
利用所述本地编译机在构建机中构建目标代码;
利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;
利用所述本地编译机将所述编译结果分发至存储设备。
2.根据权利要求1所述的方法,其特征在于,所述连接本地编译机,包括:
利用VDI登录所述本地编译机。
3.根据权利要求1所述的方法,其特征在于,所述利用所述本地编译机在构建机中构建目标代码,包括:
利用所述本地编译机从gitlab仓库复制目标集成环境到构建机中;
利用所述本地编译机修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
4.根据权利要求1所述的方法,其特征在于,所述本地编译机为sandbox。
5.一种存储设备代码分发系统,其特征在于,包括:
连接模块,用于连接本地编译机;
构建模块,用于利用所述本地编译机在构建机中构建目标代码;
编译模块,用于利用所述本地编译机向所述构建机发送指令以使所述构建机编译所述目标代码得到编译结果;
分发模块,用于利用所述本地编译机将所述编译结果分发至存储设备。
6.根据权利要求5所述的系统,其特征在于,所述连接模块,具体用于利用VDI登录所述本地编译机。
7.根据权利要求5所述的系统,其特征在于,所述构建模块包括:
集成环境复制单元,用于利用所述本地编译机从gitlab仓库复制目标集成环境到构建机中;
目标代码同步单元,用于利用所述本地编译机修改存储设备代码得到目标代码,并将所述目标代码同步至所述构建机。
8.根据权利要求5所述的系统,其特征在于,所述本地编译机为sandbox。
9.一种存储设备代码分发装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述存储设备代码分发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述存储设备代码分发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711269011.XA CN107967211A (zh) | 2017-12-05 | 2017-12-05 | 一种存储设备代码分发方法、系统、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711269011.XA CN107967211A (zh) | 2017-12-05 | 2017-12-05 | 一种存储设备代码分发方法、系统、装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107967211A true CN107967211A (zh) | 2018-04-27 |
Family
ID=61998389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711269011.XA Pending CN107967211A (zh) | 2017-12-05 | 2017-12-05 | 一种存储设备代码分发方法、系统、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967211A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149682A (zh) * | 2007-10-31 | 2008-03-26 | 金蝶软件(中国)有限公司 | 一种日构建方法、装置及系统 |
US20160299815A1 (en) * | 2013-12-05 | 2016-10-13 | Google Inc. | Distributing Data on Distributed Storage Systems |
CN106648597A (zh) * | 2016-10-10 | 2017-05-10 | 许继集团有限公司 | 一种多用户并发式远程编译引擎架构 |
-
2017
- 2017-12-05 CN CN201711269011.XA patent/CN107967211A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149682A (zh) * | 2007-10-31 | 2008-03-26 | 金蝶软件(中国)有限公司 | 一种日构建方法、装置及系统 |
US20160299815A1 (en) * | 2013-12-05 | 2016-10-13 | Google Inc. | Distributing Data on Distributed Storage Systems |
CN106648597A (zh) * | 2016-10-10 | 2017-05-10 | 许继集团有限公司 | 一种多用户并发式远程编译引擎架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Athlur et al. | Varuna: scalable, low-cost training of massive deep learning models | |
CN112270550B (zh) | 一种基于区块链的新能源电力溯源方法及系统 | |
Maheshwari et al. | Toward a reliable, secure and fault tolerant smart grid state estimation in the cloud | |
CN106774277B (zh) | 一种多虚拟控制器之间的数据共享方法 | |
CN105630488A (zh) | 一种基于docker容器技术的持续集成实现方法 | |
CN103412768A (zh) | 一种基于脚本程序自动化部署Zookeeper集群的方法 | |
Tan et al. | Score: Smart-grid common open research emulator | |
Fuller et al. | Communication simulations for power system applications | |
CN105847088A (zh) | 一种基于云服务的虚拟机性能测试系统 | |
CN105306557A (zh) | 一种基于云平台的桥梁健康监测系统 | |
CN105069702B (zh) | 一种电网集成信息处理方法 | |
CN105930598B (zh) | 一种基于控制器流水架构的层次化信息处理方法及电路 | |
CN103067501B (zh) | PaaS平台的大数据处理方法 | |
CN104635512B (zh) | 基于RT‑Lab和WiGig的MMC型高压变频器实时在线仿真系统 | |
CN102809957B (zh) | 用于标识基金会现场总线链接装置的系统和方法 | |
CN104516809A (zh) | 一种自动化测试系统及方法 | |
CN108134690A (zh) | 网络业务部署流程控制方法、装置及系统 | |
CN107911251A (zh) | 一种网络设备配置方法、装置和介质 | |
CN105488288A (zh) | 一种ns3并行模拟仿真系统 | |
CN106385330A (zh) | 一种网络功能虚拟化编排器的实现方法及装置 | |
CN104243172B (zh) | 一种分散控制系统的扩展输入输出装置和方法 | |
CN106982140A (zh) | 一种信息流仿真方法及系统 | |
CN104780068B (zh) | 一种机房迁移的网络切换方法、装置及系统 | |
Theeten et al. | Towards the optimization of a parallel streaming engine for telco applications | |
CN107357529B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180427 |