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

代码部署方法、装置、设备及存储介质与流程

2022-02-21 04:18:39 来源:中国专利 TAG:


1.本技术涉及计算机领域,尤其涉及一种代码部署方法、装置、设备及存储介质。


背景技术:

2.随着互联网技术的快速发展,云平台技术越来越受到技术人员的青睐,将代码进行云化的自动化部署会避免日常错误导致的效率低、实现步骤冗余、人力过度输出等弊端。
3.当前将插件的代码部署至测试用的云端服务器时,直接将插件的代码上传至云端服务器,在云端服务器对代码进行测试,在测试通过后,将插件的代码部署于该云端服务器。将插件的代码部署于云端服务器后,云端服务器对用户开放该插件的代码,也就是说,通常云端服务器为距离用户较近的服务器,因此在云端服务器对插件的代码进行测试时,如果插件的代码出现较为严重的异常时,需要通知开发人员对插件的代码进行修补并重新上传,而这一过程无疑会延长云端服务器将插件的代码面向用户的时间。


技术实现要素:

4.本技术提供了一种代码部署方法、装置、设备及存储介质,用以解决云端服务器对插件的代码进行测试时,插件的代码出现严重的异常导致云端服务器将插件的代码面向用户的时间延长的问题。
5.第一方面,提供一种代码部署方法,包括:
6.当确定待上传插件的各代码片段均通过测试时,获取用于描述所述待上传插件的插件信息,任意一个所述代码片段指示所述待上传插件的一个插件功能;
7.基于所述插件信息,将所述待上传插件上传并部署至云端服务器中。
8.可选地,所述确定待上传插件的各代码片段均通过测试,包括:
9.当确定各所述代码片段均未出现异常启动,确定所述待上传插件的各代码片段均通过所述测试。
10.可选地,所述确定各所述代码片段均未出现异常启动,包括:
11.对于任一所述代码片段执行以下步骤:
12.将所述代码片段部署至测试设备中,并在所述测试设备中运行所述代码片段;
13.获取所述测试设备运行所述代码片段的日志记录;
14.当所述日志记录中未包括日志内容为预设内容的记录时,确定所述代码片段未出现异常启动。
15.可选地,所述基于所述插件信息,将所述待上传插件上传并部署至云端服务器中之前,还包括:
16.基于所述插件信息确定所述待上传插件未被上传至所述云端服务器。
17.可选地,所述基于所述插件信息确定所述待上传插件未被上传至所述云端服务器,包括:
18.生成与所述插件信息对应的校验码;
19.当确定所述云端服务器中未存储有与所述校验码匹配的校验码时,确定所述待上传插件未被上传至所述云端服务器。
20.可选地,所述生成与所述插件信息对应的校验码,包括:
21.确定与所述插件信息对应的md5码;
22.将所述md5码作为所述校验码。
23.可选地,所述插件信息包括以下至少一种:
24.插件版本;
25.插件标识;
26.插件名称;
27.插件的上传路径。
28.第二方面,提供一种代码部署装置,包括:
29.获取单元,用于当确定待上传插件的各代码片段均通过测试时,获取用于描述所述待上传插件的插件信息,任意一个所述代码片段指示所述待上传插件的一个插件功能;
30.部署单元,用于基于所述插件信息,将所述待上传插件上传并部署至云端服务器中。
31.可选地,所述装置用于:
32.当确定各所述代码片段均未出现异常启动,确定所述待上传插件的各代码片段均通过所述测试。
33.可选地,所述装置用于:
34.对于任一所述代码片段执行以下步骤:
35.将所述代码片段部署至测试设备中,并在所述测试设备中运行所述代码片段;
36.获取所述测试设备运行所述代码片段的日志记录;
37.当所述日志记录中未包括日志内容为预设内容的记录时,确定所述代码片段未出现异常启动。
38.可选地,所述装置还用于:
39.基于所述插件信息,将所述待上传插件上传并部署至云端服务器中之前,基于所述插件信息确定所述待上传插件未被上传至所述云端服务器。
40.可选地,所述装置用于:
41.生成与所述插件信息对应的校验码;
42.当确定所述云端服务器中未存储有与所述校验码匹配的校验码时,确定所述待上传插件未被上传至所述云端服务器。
43.可选地,所述装置用于:
44.确定与所述插件信息对应的md5码;
45.将所述md5码作为所述校验码。
46.可选地,所述插件信息包括以下至少一种:
47.插件版本;
48.插件标识;
49.插件名称;
50.插件的上传路径。
51.第三方面,提供一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
52.所述存储器,用于存储计算机程序;
53.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的代码部署方法。
54.第四方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的代码部署方法。
55.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,当确定待上传插件的各代码片段均通过测试时,获取用于描述待上传插件的插件信息,任意一个代码片段指示待上传插件的一个插件功能;基于插件信息,将待上传插件上传并部署至云端服务器中。由于在将插件的代码上传并部署至云端服务器前对待上传插件的各代码片段进行测试,所述可以保证上传至云端服务器的插件进行测试时不会出现较大的异常,所以也就不用在插件测试出现异常时,反复将待上传插件的代码反复上传云端服务器,从而大大降低了云端服务器将待上传的插件的代码面向用户的时间。
附图说明
56.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
58.图1为本技术实施例中代码部署方法的流程示意图;
59.图2为本技术实施例中代码部署装置的结构示意图;
60.图3为本技术实施例中电子设备的结构示意图。
具体实施方式
61.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
62.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
63.本技术实施例提供一种代码部署方法,该方法可应用于任一电子设备中;
64.本技术实施例所描述电子设备可以包括智能手机(如android手机、ios手机、
windows phone手机等)、平板电脑、掌上电脑、笔记本电脑、视频矩阵、监控平台、移动互联网设备(mid,mobile internet devices)或穿戴式设备等,上述仅是举例,而非穷举,包含但不限于上述装置,当然,上述电子设备还可以为服务器。
65.如图1所示,该方法包括以下步骤:
66.步骤101、当确定待上传插件的各代码片段均通过测试时,获取用于描述待上传插件的插件信息,任意一个代码片段指示待上传插件的一个插件功能。
67.本实施例中,将插件的代码按照插件功能划分为多个代码片段,每个代码片段指示待上传插件的一个插件功能。以浏览器中的翻译语言的插件为例,通常翻译语言的插件包括原始语言的界面、翻译得到的语言的界面等,因此可以将该插件按照原始语言的界面、翻译得到的语言的界面得到两个代码片段。应理解,对于上述举例的翻译语言的插件,原始语言的界面的代码片段和翻译得到的语言的界面的代码片段仅是两个示例,并不限定该插件只包括这两个代码片段。
68.本实施例中,对待上传插件的各代码片段的进行测试的主体可以为上述电子设备,当然根据实际需要,该主体也可以为另一电子设备。应理解,当该主体为另一电子设备时,上述电子设备能够与该另一电子设备通信,以获取该另一电子设备中对各代码片段进行测试的测试结果。
69.本实施例中,当对各代码片段进行测试时,若各代码片段均未出现异常启动,则确定待上传插件的各代码片段均通过测试。
70.其中,本实施例中所示出的异常启动包括但不限于白屏或闪退。白屏指示代码片段不能正常运行;闪退指示打开代码片段时出现的突然退出中断的情况。
71.本实施例基于测试的日志记录确定代码片段是否出现异常启动。
72.一个具体实施例中,将代码片段部署至测试设备中,并在测试设备中运行代码片段;获取测试设备运行代码片段的日志记录;当日志记录中未包括日志内容为预设内容的记录时,确定代码片段未出现异常启动。
73.应用中,预设内容的记录由用户预先在电子设备中设置。例如,设置预设内容为a时,表示对代码片段进行测试时,代码片段出现了闪退;设置预设内容为b时,表示对代码片段进行测试时,代码片段出现了白屏,因此日志记录中出现日志内容为a或b的记录时,确定代码片段出现异常启动,相反,当日志记录中未出现日志内容为a和b的记录时,确定代码片段未出现异常启动。
74.本实施例中,电子设备对各代码片段进行测试时,可以采用串行的方式对各代码片段进行测试,此时按照开发插件时开发各代码片段的顺序逐一对各代码片段进行测试;当然为了节约成本,也可以采用并行的方式对各代码片段进行测试,此时电子设备将各代码片段分别向每个目标设备分发一个代码片段,由多个目标设备并行完成对各代码片段的测试。
75.本实施例中,代码片段包括前端代码和后端代码,目标设备在对代码片段进行测试时,运行前端代码得到运行结果,通过后端代码将运行结果转换为日志记录。
76.本实施例中,电子设备与目标设备可以通过telnet和ftp协议进行数据通讯。
77.本实施例中为了进一步缩短云端服务器面向用户的时间,在确定各代码片段均未出现异常启动时,进一步确定各代码片段在运行过程中均未出现其它bug(漏洞)时,确定待
上传插件的各代码片段均通过测试。
78.本实施例中,待上传插件的插件信息包括以下至少一种:
79.插件版本;
80.插件标识;
81.插件名称;
82.插件的上传路径。
83.其中,插件版本指示该触插件的发布时间;插件标识用于唯一标识该插件;插件的上传路径用于指示该插件上传云端服务器的路径地址。
84.应用中,根据实际需要,插件信息还可以包括资源文件(如背景图片、图标)、以及字段协议等参数。
85.本实施例中,插件信息可以由用户指示,也可以由电子设备自动从插件代码中提取,本实施例对此不作具体限定。
86.步骤102、基于插件信息,将待上传插件上传并部署至云端服务器中。
87.本实施例中,为了防止重复上传部署,在将待上传插件部署至云端服务器前,基于插件信息确定待上传插件未被上传至云端服务器。
88.一个具体实施例中,生成与插件信息对应的校验码;当确定云端服务器中未存储有与校验码匹配的校验码时,确定待上传插件未被上传至云端服务器。
89.应用中,云端服务器本地存储有上传至该云端服务器的插件的校验码,也就是说,凡是上传至云端服务器的插件,云端服务器都可以存储其校验码,即时该插件因为各种原因被删除或驳回,云端服务器仍然可以记录其校验码,因此基于校验码可以确定该插件是否曾经被上传至云端服务器。当确定云端服务器本地未存储有该插件的校验码时,确定该插件未被上传至云端服务器。
90.应理解,云端服务器向电子设备开设有访问接口,因此电子设备可以通过该访问接口访问云端服务器。
91.应理解,当确定云端服务器中存储有与校验码匹配的校验码时,表示云端服务器中上传有重复的插件的代码,此时识别该插件的代码为无效代码,同时给予本次上传的代码不审核通过处理,并以一定方式通知相应上传人员,要求其重新提交插件的代码。采用本实施例的方案可实现代码的自动化审核,大大节省因软件重复上传而造成的时间成本浪费,同时替代部分代码审核人员的工作,以提高代码审核效率。
92.本技术另一实施例中,为了规范上传插件的代码的上传者的权限,在获取用于描述上传插件的插件信息之前还可以对用户的上传权限进行验证。应用中,用户可以通过电子设备登录云端服务器,因此可以在登录的过程对用户的权限进行验证。具体实现时,获取用户的登录请求,登录请求携带用户的令牌(token),令牌为用户首次登录云端服务器时,云端服务器基于用户的账号和密码生成;确定本地存储的令牌中包括令牌。
93.本实施例中,电子设备侧部署有与云端服务器对应的软件平台,通过该软件平台用户能够登录云端服务器并与云端服务器进行交互。应用中,该软件平台可以为基于jenkins开发的平台。
94.其中,jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
95.本实施例中,基于jenkins开发的软件平台还可以支持用户查看代码上传的信息,并在确定上传的代码不为重复的代码后,在云端服务器进行部署。
96.应用中,云端服务器返回的token可以放置在软件平台的cookie或local storage中,下次在发送登录请求时,都会携带此token发送请求验证。
97.应理解,当用户首次登录云端服务器时,登录请求中携带的是用户的账号和密码,因此此时通过用户的账号和密码对用户的权限进行验证。具体地判断该账号是否为注册过的账号,若为注册过的账号则进一步判断该账号和密码是否匹配,若匹配,则确定用户可以通过电子设备上传待上传插件的插件信息。
98.本实施例中,云端服务器包括但不限于测试用服务器(简称为测试服)。在将插件的代码上传至云端服务器后,还可以通过云端服务器开放的查询接口对插件的插件信息进行查询,其中用户在查询接口中输入的查询参数包括但不限于插件的名称。
99.本技术实施例提供的技术方案中,当确定待上传插件的各代码片段均通过测试时,获取用于描述待上传插件的插件信息,任意一个代码片段指示待上传插件的一个插件功能;基于插件信息,将待上传插件上传并部署至云端服务器中。由于在将插件的代码上传并部署至云端服务器前对待上传插件的各代码片段进行测试,可以保证上传至云端服务器的插件进行测试时不会出现较大的异常,所以也就不用在插件测试出现异常时,反复将待上传插件的代码反复上传云端服务器,从而大大降低了云端服务器将待上传的插件的代码面向用户的时间。
100.为了更清楚描述本技术实施例,以下从电子设备和云端服务器构成的通信系统的角度描述本技术实施例中的代码部署方法。
101.用户在电子设备展示的用于登录云端服务器的登录界面中输入账号和密码,并点击登录按钮以向云端服务器发送登录请求,云端服务器对账号和密码进行验证,待验证成功后,生成与账号和密码对应的token,并返回给电子设备,电子设备将token进行存储,放置在cookie或local storage中,下次用户在具有登录请求时,会在登录请求中携带该token,云端服务器判断本地是否存储有该token,若是,则确定对用户的验证通过。
102.对用户的验证通过后,电子设备调用接口函数将待上传的插件的代码的压缩包上传至云端服务器,并在此过程中通过脚本文件获取该压缩包中的插件信息,如插件名称、插件版本等。
103.待上传插件上传完成后,云端服务器基于插件信息生成校验码,并在对校验码校验通过后,通过电子设备向用户展示上传信息;若对校验密码校验未通过(如用户上传错版本或待上传插件的代码内容有误等),则驳回该待上传插件。
104.通过接口函数上的压缩包中的插件信息还可以包括上传的附件路径、上传的原因等信息,这些信息也可通过自动化识别进行获取,不需要人工输入,可避免人工输入出错的现象。
105.在对待上传插件的各代码片段进行测试时,电子设备可以将各代码片段分别发送至目标设备,并由每一目标设备分别对一个代码片段进行测试,以此可节约成本。
106.目标设备对代码片段进行测试时,运行代码片段中的前端代码得到运行结果,通过代码片段中的后端代码将运行结果转换为日志记录。
107.电子设备中部署有基于jenkins开发的软件平台,用户可以基于该平台选择需要
部署的项目(即待上传的插件),输入需要执行的命令(如选择命令),执行命令后,应用可通过流程进行一步步的执行操作,最后会得到测试成功或失败的情况。若失败可查看日志进行排查问题,再重新执行指令部署即可。
108.通过基于jenkins的软件平台完成业务的自动化部署,部署完成后相应人员可直接查看代码上传的信息,并进行代码的审核,审核通过后,即可部署上线。这是一种实现代码静态化的管理,完成获取数据、代码上传、编译部署、功能测试、审核通过的过程,采用分层结构对代码进行云化,一并实现自动化构建。
109.基于同一构思,本技术实施例中提供了一种代码部署装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图2所示,该装置主要包括:
110.获取单元201,用于当确定待上传插件的各代码片段均通过测试时,获取用于描述待上传插件的插件信息,任意一个代码片段指示待上传插件的一个插件功能;
111.部署单元202,用于基于插件信息,将待上传插件上传并部署至云端服务器中。
112.可选地,该装置具体用于:
113.当确定各代码片段均未出现异常启动,确定待上传插件的各代码片段均通过测试。
114.可选地,该装置具体用于:
115.对于任一代码片段执行以下步骤:
116.将代码片段部署至测试设备中,并在测试设备中运行代码片段;
117.获取测试设备运行代码片段的日志记录;
118.当日志记录中未包括日志内容为预设内容的记录时,确定代码片段未出现异常启动。
119.可选地,该装置还用于:
120.基于插件信息,将待上传插件上传并部署至云端服务器中之前,基于插件信息确定待上传插件未被上传至云端服务器。
121.可选地,该装置用于:
122.生成与插件信息对应的校验码;
123.当确定云端服务器中未存储有与校验码匹配的校验码时,确定待上传插件未被上传至云端服务器。
124.可选地,该装置用于:
125.确定与插件信息对应的md5码;
126.将md5码作为校验码。
127.可选地,插件信息包括以下至少一种:
128.插件版本;
129.插件标识;
130.插件名称;
131.插件的上传路径。
132.基于同一构思,本技术实施例中还提供了一种电子设备,如图3所示,该电子设备主要包括:处理器301、存储器302和通信总线303,其中,处理器301和存储器302通过通信总线303完成相互间的通信。其中,存储器302中存储有可被处理器301执行的程序,处理器301
执行存储器302中存储的程序,实现如下步骤:
133.当确定待上传插件的各代码片段均通过测试时,获取用于描述待上传插件的插件信息,任意一个代码片段指示待上传插件的一个插件功能;
134.基于插件信息,将待上传插件上传并部署至云端服务器中。
135.上述电子设备中提到的通信总线303可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线303可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
136.存储器302可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器301的存储装置。
137.上述的处理器301可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
138.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的代码部署方法。
139.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
140.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
141.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发
明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献