一种代码部署方法与流程

文档序号:16879660发布日期:2019-02-15 22:00阅读:347来源:国知局
一种代码部署方法与流程

本发明涉及数据处理领域,尤其涉及一种代码部署方法。



背景技术:

在数据日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁。在前期开发人员比较少的情况下,待发布的代码也相对较少,开发人员还可以自己上服务器通过脚本发布代码。但随着公司项目的增多,更多的开发人员加入到公司,发布代码需求也开始日益增多,开发人员需要占用大部分时间用于发布代码,这使得开发人员的其它工作会被经常打断,并且代码的发布非常不方便,如何快捷有效的对代码进行发布,将开发人员从繁琐的代码部署任务中释放出来,成了目前数据日常运维领域中急需解决的问题。



技术实现要素:

本发明的目的是针对现有技术的缺陷,提供一种代码部署方法,实现了可以根据客户需求自动进行预发布,测试,再部署和再测试的代码自动发布与部署的功能,同时减弱了在日常运维工作中最为耗时、最为繁琐的代码部署和更新工作,尤其是网页代码的更新,大大节约了代码开发人员的时间成本。并且,本发明实施例还提高了代码发布、测试与部署的效率,降低了操作门槛,简化了操作步骤,使得代码的发布与部署模块化、自动化,提升了工作效率。

为了实现上述目的,本发明实施例提供了一种代码部署方法,包括:

代码部署平台中的预发布模块接收用户输入的代码部署请求,并获取与所述代码部署请求相对应的待部署代码;所述待部署代码的部署状态信息为第一状态信息;

所述预发布模块在开发环境中对所述待部署代码进行测试,根据测试结果生成第一测试结果码;

确定所述第一测试结果码是否为第一结果码;

当所述第一测试结果码为所述第一结果码时,将所述待部署代码的部署状态信息更新为第二状态信息,并将所述待部署代码发送至所述代码部署平台中的部署模块;

所述部署模块在生产环境中对所述待部署代码进行部署,并将所述待部署代码的部署状态信息更新为第三状态信息;

并且,所述部署模块在所述生产环境中对所述待部署代码进行测试,根据测试结果生成第二测试结果码;

确定所述第二测试结果码是否不为所述第一结果码;

当所述第二测试结果码不为所述第一结果码时,根据所述第二测试结果生成测试失败的提示信息,并输出;所述测试失败的提示信息包括测试报告;

并且,所述部署模块撤销所述待部署代码在所述生产环境中的部署,并将所述待部署代码的部署状态信息更新为所述第一状态信息。

优选的,在所述获取与所述代码部署请求相对应的待部署代码之后,所述方法还包括:

所述预发布模块将所述待部署代码存储至所述代码部署平台中的代码数据库中。

优选的,所述预发布模块在开发环境中对所述待部署代码进行测试,根据测试结果生成第一测试结果码具体为:

在所述开发环境中确定与所述待部署代码相对应的编辑脚本;

根据所述编译脚本对所述待部署代码进行编译,并根据所述开发环境中的数据运行所述待部署代码;

根据编译结果和运行结果生成第一测试结果码。

优选的当所述第一测试结果码不为所述第一结果码时,所述方法还包括:

所述预发布模块根据所述第一测试结果生成所述测试失败的提示信息。

优选的,所述部署模块在所述生产环境中对所述待部署代码进行测试,根据测试结果生成第二测试结果码具体为:

在所述生产环境中确定与所述待部署代码相对应的编辑脚本;

根据所述编译脚本对所述待部署代码进行编译,并根据所述生产环境中的数据运行所述待部署代码;

根据编译结果和运行结果生成第二测试结果码。

进一步优选的,测试结果码包括根据所述编译结果生成的编译结果码和根据所述运行结果生成的运行结果码。

优选的,当所述第二测试结果码为所述第一结果码时,所述方法还包括:

所述部署模块生成部署成功的提示信息,并输出。

优选的,当所述第二测试结果码不为所述第一结果码时,所述方法还包括:

将所述测试失败的提示信息发送至所述预发布模块,用以所述预发布模块根据所述测试失败的提示信息将所述待部署代码的部署状态信息更新为所述第一状态信息,并输出所述测试失败的提示信息。

优选的,在所述预发布模块根据所述测试失败的提示信息将所述待部署代码的部署状态信息更新为所述第一状态信息,并输出所述测试失败的提示信息之后,所述方法还包括:

所述预发布模块接收用户根据所述测试报告输入的更新后的待部署代码,并在所述开发环境中对所述更新后的待部署代码进行测试。

优选的,所述代码开发环境为第一环境集合,所述代码生产环境为第二环境集合。

本发明实施例提供的一种代码部署方法,实现了可以根据客户需求自动进行预发布,测试,再部署和再测试的代码自动发布与部署的功能,同时减弱了在日常运维工作中最为耗时、最为繁琐的代码部署和更新工作,尤其是网页代码的更新,大大节约了代码开发人员的时间成本。并且,本发明实施例还提高了代码发布、测试与部署的效率,降低了操作门槛,简化了操作步骤,使得代码的发布与部署模块化、自动化,提升了工作效率。

附图说明

图1为本发明实施例提供的一种代码部署方法的流程图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明实施例提供的一种代码部署方法,实现于代码部署平台中,为更好的理解本发明实施例提供的技术方案,下面首先对代码部署平台进行说明。

代码部署平台可以理解为面向于代码开发人员的,用于对所开发代码进行部署的平台。代码部署平台可同时实现与代码开发环境中和代码生成环境中。代码开发环境可以理解为代码开发人员在开发代码时所使用到的软件、硬件要求和操作系统平台的第一环境集合,用以支持代码开发的相关过程、活动和任务。代码生产环境可以理解为代码开发人员在开发代码后,正式运行代码并提供对外服务时所使用到的软件、硬件要求和操作系统平台的第二环境集合,用以支持代码正式运行的相关过程、活动和任务。

本发明实施例提供的一种代码部署方法,用于在代码部署平台中自动部署已开发的代码,其方法流程图如图1所示,包括如下步骤:

步骤100,预发布模块接收用户输入的代码部署请求;

具体的,代码部署平台中包括预发布模块和部署模块。其中预发布模块用于在代码开发环境中对代码进行开发和测试,部署模块用于将代码部署在代码生产环境中并在代码生产环境中对代码进行测试和运行。

代码部署平台中的预发布模块接收用户输入的代码部署请求,并获取与代码部署请求相对应的待部署代码,这一过程可以理解为用户发布代码部署需求之后,预发布模块会自动根据需求获取与需求相关工程代码的过程。并且,预发布模块在获取到代码部署请求后,还会将待部署代码存储至代码部署平台中的代码数据库中。此时,该待部署代码所对应的部署状态信息为“待测试”的第一状态信息。

步骤110,预发布模块在开发环境中对待部署代码进行测试;

具体的,预发布模块在开发环境中对待部署代码进行测试。对代码进行测试包括两个部分,一个是对代码的语言逻辑进行测试,确定代码是否可以编译成功。另一个是对代码进行功能性测试,确定代码是否可以满足用户所需实现的功能要求。

进一步的具体,预发布模块首先在开发环境中确定与待部署代码相对应的编辑脚本,然后根据编译脚本对待部署代码进行编译,若编译成功则根据开发环境中的数据运行待部署代码,最后根据编译结果和运行结果生成针对在开发环境进行测试后的第一测试结果码。第一测试结果码包括根据编译结果生成的编译结果码和根据运行结果生成的运行结果码。若编译不成功,则运行结果码为空。

步骤120,确定第一测试结果码是否为第一结果码;

具体的,确定对待部署代码在开发环境进行测试后的第一测试结果码是否为代表了测试通过的第一结果码,也就是确定待部署代码在开发环境中是否通过测试。当第一测试结果码中的编译结果码和运行结果码均为第一结果码时,说明待部署代码在开发环境中通过了测试,则执行下述步骤130。当第一测试结果码中的编译结果码和运行结果码中任意一个结果码不为第一结果码时,说明待部署代码在开发环境中没有通过测试,则执行下述步骤180。

步骤130,将待部署代码发送至部署模块;

具体的,当第一测试结果码中的编译结果码和运行结果码均为第一结果码时,也就是当待部署代码在开发环境中通过了测试时,就可以准备对待部署代码进行上线部署了。预发布模块首先将待部署代码的部署状态信息更新为“待部署”的第二状态信息,并将待部署代码发送至部署模块。

步骤140,部署模块在生产环境中对待部署代码进行测试;

具体的,部署模块在接收到待部署代码后,将待部署代码部署在生产环境中,并将待部署代码的部署状态信息更新为“已部署”的第三状态信息。并且,部署模块还会在生产环境中对待部署代码进行再次测试。其测试同样包括对代码的语言逻辑进行测试以及对代码进行功能性测试这两个部分。

进一步具体的,部署模块首先在生产环境中确定与待部署代码相对应的编辑脚本,根据编译脚本对待部署代码进行编译,若编译成功则根据生产环境中的数据运行待部署代码,最后根据编译结果和运行结果生成针对在生产环境进行测试后的第二测试结果码。第二测试结果码同样包括根据编译结果生成的编译结果码和根据运行结果生成的运行结果码。若编译不成功,则运行结果码为空。

需要说明的是,生产环境与开发环境是两个不同的代码运行环境,其对代码的编译脚本和运行代码的数据均不同,尤其是生产环境中的数据相对于开发环境中的数据来说通常较少也较单一。因此即使代码经过了在开发环境的测试,也不一定就保证可以在生产环境中无错运行。但通常,如果代码无法在开发环境中通过测试,也必然无法在生产环境中正常运行。

步骤150,确定第二测试结果码是否为第一结果码;

具体的,确定对待部署代码在生产环境进行测试后的第二测试结果码是否也为代表了测试通过的第一结果码,也就是确定待部署代码在开发环境中是否通过测试。当第二测试结果码中的编译结果码和运行结果码也均为第一结果码时,说明待部署代码在生产环境中也通过了测试,则执行下述步骤160。当第二测试结果码中的编译结果码和运行结果码中任意一个结果码不为第一结果码时,说明待部署代码在生产环境中没有通过测试,则执行步骤170。

步骤160,部署模块生成部署成功的提示信息,并输出;

具体的,当第二测试结果码中的编译结果码和运行结果码也均为第一结果码时,也就是当待部署代码不仅在开发环境中通过了测试,也在生产环境中也通过了测试时,部署模块生成部署成功的提示信息,并输出,用以提示用户待部署代码以成功部署。此时,待部署代码完成了部署流程。

步骤170,部署模块撤销待部署代码在生产环境中的部署;

具体的,当第二测试结果码中的编译结果码和运行结果码中任意一个结果码不为第一结果码时,也就是当待部署代码在生产环境中没有通过测试时,部署模块撤销待部署代码在生产环境中的部署,同时将待部署代码的部署状态信息更新为所述“待测试”的第一状态信息。

步骤180,根据测试结果生成测试失败的提示信息,并输出;

具体的,当第一测试结果码中的编译结果码和运行结果码中任意一个结果码不为第一结果码时,也就是当待部署代码在开发环境中没有通过测试时,预发布模块根据第一测试结果生成测试失败的提示信息,并输出。此时,测试失败的待部署代码将不会得到部署,并且用户也可以待部署代码可以在部署上线前,得知待部署代码存在问题。

或者,当第二测试结果码中的编译结果码和运行结果码中任意一个结果码不为第一结果码时,也就是当待部署代码在生产环境中没有通过测试时,部署模块根据第二测试结果生成测试失败的提示信息,并输出。在部署模块输出测试失败的提示信息时,还会将测试失败的提示信息发送至预发布模块,用以预发布模块根据测试失败的提示信息将待部署代码的部署状态信息更新为“待测试”的第一状态信息,并输出测试失败的提示信息。也就是说,不论待部署代码是在开发环境中没有通过测试的,还是在生产环境中没有通过测试的,预发布模块都会收到测试失败的提示信息。

不论是预发布模块根据第一测试结果生成测试失败的提示信息,还是部署模块根据第二测试结果生成测试失败的提示信息,都包括测试报告。测试报告包括测试失败的原因和测试环境,用以用户通过查看测试报告确定代码测试失败的原因,并确定代码是没有在开发环境中通过测试还是没有在生产环境通过测试。

步骤190,预发布模块接收用户输入的更新后的待部署代码;

具体的,预发布模块接收用户根据测试报告输入的更新后的待部署代码,然后返回执行步骤110,也就是继续在开发环境中对更新后的待部署代码进行测试。这一过程可以理解为预发布模块对用户修改待部署代码后,对修改后的待部署代码重新进行测试、部署的过程,直至在步骤150中确定对待部署代码在生产环境进行测试后的第二测试结果码为代表了测试通过的第一结果码。

本发明实施例提供的一种代码部署方法,实现了可以根据客户需求自动进行预发布,测试,再部署和再测试的代码自动发布与部署的功能,同时减弱了在日常运维工作中最为耗时、最为繁琐的代码部署和更新工作,尤其是网页代码的更新,大大节约了代码开发人员的时间成本。并且,本发明实施例还提高了代码发布、测试与部署的效率,降低了操作门槛,简化了操作步骤,使得代码的发布与部署模块化、自动化,提升了工作效率。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom动力系统控制方法、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1