一种自动打包发布方法及装置与流程

文档序号:12362984阅读:287来源:国知局
一种自动打包发布方法及装置与流程

本发明涉及系统开发技术领域,特别是涉及一种自动打包发布方法及装置。



背景技术:

随着企业信息系统功能扩充完善、开发过程不断细化。常规的软件开发生命周期中一般会涉及到开发环境、集成测试环境、确认测试环境、生产环境至少4套环境,现有的工作模式下将程序的某一个版本从开发环境提取出来到最终部署再到生产环境中会耗费大量的时间,浪费大量的人力资源,而且容易出现问题。



技术实现要素:

本发明的目的是提供一种自动打包发布方法及装置,目的在于解决实际开发过程中代码规范执行不到位、搭建测试环境周期长、容易因人为原因导致错误的问题。

为解决上述技术问题,本发明提供一种自动打包发布方法,包括:

获取用户提交的代码,检查获取到的代码是否符合预设代码规范;

如果检查通过,则接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上;

将程序包从所述版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;

调用相应的测试程序,对系统进行测试。

可选地,在所述检查获取到的代码是否符合预设代码规范之后还包括:

如果检测不通过,则向用户发送提示文件存在问题的提示信息,所述提示信息中包含不符合规范的原因。

可选地,所述采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上包括:

采用从指定的版本控制服务器下载的文件进行编译;

判断编译是否成功;

如果是,则进行代码打包;如果否,则向用户发送是否进行人工触发打包的通知。

可选地,所述调用相应的测试程序,对系统进行测试包括:

分别启动功能测试脚本、性能测试脚本以及安全测试脚本,对系统进行功能、性能以及安全的测试,对应生成功能测试结果、性能测试结果以及安全测试结果信息。

可选地,还包括:

将所述功能测试结果、性能测试结果以及安全测试结果信息通过邮件方式发送至预设的联系用户。

本发明还提供了一种自动打包发布装置,包括:

静态代码检查模块,用于获取用户提交的代码,检查获取到的代码是否符合预设代码规范;

编译打包模块,用于在所述静态代码检查模块检查所述代码通过后,接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上;

部署模块,用于将程序包从所述版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;

测试模块,用于调用相应的测试程序,对系统进行测试。

可选地,还包括:

提示模块,用于在所述静态代码检查模块检查获取到的代码不符合预设代码规范之后,向用户发送提示文件存在问题的提示信息,所述提示信息中包含不符合规范的原因。

可选地,所述编译打包模块具体用于:

采用从指定的版本控制服务器下载的文件进行编译;判断编译是否成功;如果是,则进行代码打包;如果否,则向用户发送是否进行人工触发打包的通知。

可选地,所述测试模块具体用于:

分别启动功能测试脚本、性能测试脚本以及安全测试脚本,对系统进行功能、性能以及安全的测试,对应生成功能测试结果、性能测试结果以及安全测试结果信息。

可选地,还包括:

结果发送模块,用于将所述功能测试结果、性能测试结果以及安全测试结果信息通过邮件方式发送至预设的联系用户。

本发明所提供的自动打包发布方法及装置,通过获取用户提交的代码,检查获取到的代码是否符合预设代码规范;如果检查通过,则接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到版本控制服务器上;将程序包从版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;调用相应的测试程序,对系统进行测试。本申请实现了软件代码提交、打包到部署的全自动化控制,提高了软件开发运维效率和部署的效率,减少了因人为原因导致系统出现问题的可能性。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的自动打包发布方法的一种具体实施方式的流程图;

图2为本发明所提供的自动打包发布方法中代码检查过程示意图;

图3为本发明所提供的自动打包发布方法中编译打包过程示意图;

图4为本发明所提供的自动打包发布方法中部署过程示意图;

图5为本发明所提供的自动打包发布方法中自动测试过程示意图;

图6为本发明实施例提供的自动打包发布装置的结构框图;

图7为本发明所提供的自动打包发布装置的系统整体部署架构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的自动打包发布方法的一种具体实施方式的流程图如图1所示,该方法包括:

步骤S101:获取用户提交的代码,检查获取到的代码是否符合预设代码规范;

步骤S102:如果检查通过,则接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上;

步骤S103:将程序包从所述版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;

步骤S104:调用相应的测试程序,对系统进行测试。

本发明所提供的自动打包发布方法,通过获取用户提交的代码,检查获取到的代码是否符合预设代码规范;如果检查通过,则接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到版本控制服务器上;将程序包从版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;调用相应的测试程序,对系统进行测试。本申请实现了软件代码提交、打包到部署的全自动化控制,提高了软件开发运维效率和部署的效率,减少了因人为原因导致系统出现问题的可能性。

在上述实施例的基础上,本发明所提供的自动打包发布方法中在步骤S101检查获取到的代码是否符合预设代码规范之后还可以包括:

如果检测不通过,则向用户发送提示文件存在问题的提示信息,所述提示信息中包含不符合规范的原因。

当开发工程师向版本控制服务器提交代码时,版本控制服务器接收到文件后可以具体通过hook(钩子)技术调用静态代码检查模块,对代码进行规范性检查,如果检查通过则继续处理文件,如果检查不通过,则拒绝工程师提交的文件,同时提示工程师提交的文件哪里存在问题。如图2本发明所提供的自动打包发布方法中代码检查过程示意图所示。

在上述实施例的基础上,步骤S102采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上的过程可以包括:

采用从指定的版本控制服务器下载的文件进行编译;

判断编译是否成功;

如果是,则进行代码打包;如果否,则向用户发送是否进行人工触发打包的通知。

具体地,代码提交通过后,由系统按照之前设置的时间或者人为发起代码打包申请,打包服务根据需求从代码的版本控制服务器上下载文件,先进行编译,如果编译通过则将编译后的文件打成war包或者jar包,如果编译失败则将错误信息反馈给调用人员。具体流程如图3本发明所提供的自动打包发布方法中编译打包过程意图所示。

代码编译通过后通过部署模块将程序包从版本控制工具上下载到集成测试服务器中,然后通过实现设置好的脚本启动应用程序。具体流程如图4本发明所提供的自动打包发布方法中部署过程示意图所示。

在上述任一实施例的基础上,调用相应的测试程序,对系统进行测试具体包括:

分别启动功能测试脚本、性能测试脚本以及安全测试脚本,对系统进行功能、性能以及安全的测试,对应生成功能测试结果、性能测试结果以及安全测试结果信息。

在此基础上,还可以进一步包括:

将所述功能测试结果、性能测试结果以及安全测试结果信息通过邮件方式发送至预设的联系用户。

自动测试是在系统启动成功后调用相应的测试程序,对系统进行功能、性能和安全相关的测试。具体流程如图5本发明所提供的自动打包发布方法中自动测试过程示意图所示。

上述操作全部完成后,系统设置开发负责人会受到相应的邮件通知,系统的各个环节出现的问题可以非常清楚的看到,测试通过的程序包可以通过版本控制服务器下载到生产环境中进行更新操作,上述环节中几乎都是自动操作,减少了人为操作导致的丢文件或者其他错误的可能性。极大地提升了打包、测试和发布的工作效率,降低了误操作的风险。

下面对本发明实施例提供的自动打包发布装置进行介绍,下文描述的自动打包发布装置与上文描述的自动打包发布方法可相互对应参照。

图6为本发明实施例提供的自动打包发布装置的结构框图,参照图6自动打包发布装置可以包括:

静态代码检查模块100,用于获取用户提交的代码,检查获取到的代码是否符合预设代码规范;

编译打包模块200,用于在所述静态代码检查模块检查所述代码通过后,接收编译请求,采用从指定的版本控制服务器下载的文件进行编译打包,打包后上传到所述版本控制服务器上;

部署模块300,用于将程序包从所述版本控制服务器上下载到集成测试服务器中,通过预设的脚本启动应用程序;

测试模块400,用于调用相应的测试程序,对系统进行测试。

作为一种具体实施方式,本发明所提供的自动打包发布装置还可以进一步包括:

提示模块,用于在所述静态代码检查模块检查获取到的代码不符合预设代码规范之后,向用户发送提示文件存在问题的提示信息,所述提示信息中包含不符合规范的原因。

可选地,所述编译打包模块具体用于:

采用从指定的版本控制服务器下载的文件进行编译;判断编译是否成功;如果是,则进行代码打包;如果否,则向用户发送是否进行人工触发打包的通知。

在上述任一实施例的基础上,本发明所提供的自动打包发布装置中,测试模块可以具体用于:

分别启动功能测试脚本、性能测试脚本以及安全测试脚本,对系统进行功能、性能以及安全的测试,对应生成功能测试结果、性能测试结果以及安全测试结果信息。

本实施例中,本发明所提供的自动打包发布装置还可以进一步包括:

结果发送模块,用于将所述功能测试结果、性能测试结果以及安全测试结果信息通过邮件方式发送至预设的联系用户。

此外,配置系统中模块所在服务器信息和相关规范的设置可以具体由服务配置管理模块来配置;静态代码检查模块用于检查程序员所提交代码是否符合代码规范,是否存在研发安全隐患,代码是否存在潜在的性能问题;编译打包模块用于将代码从版本控制服务器中下载下来编译打包,打包后上传到部署包的版本控制服务器上;部署模块通过从部署包版本控制服务器下载编译后的包,然后发布到tomcat或者weblogic等应用服务器中间件上,并启动应用程序;自动测试模块是在打包模块启动完成后运行实现录制好的脚本,对系统进行自动测试,并将测试结果通过邮件的方式发送给相关负责人。

本发明所提供的自动打包发布装置的系统整体部署架构示意图如图7所示。

通过本发明所提供的自动打包发布装置,解决了实际开发过程中代码规范执行不到位、搭建测试环境周期长而且容易出现问题的实际问题,实现了软件版本的自动、稳定、高效、安全的发布,极大地节约了时间和人力成本,提升了软件部署升级的效率,减少了部署过程中的问题。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

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

以上对本发明所提供的自动打包发布方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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