代码自动发布方法与流程

文档序号:12863710阅读:1078来源:国知局
代码自动发布方法与流程

本发明涉及计算机技术领域,尤其涉及一种代码自动发布方法。



背景技术:

随着公司业务的增长,公司的平台越来越多,目前近二十个平台,越来越多的平台导致导致平台的代码升级工作愈发繁重而低效率,人工操作且容易出错,基于此原因,自动化代码升级需求越来越迫切,所以进行本方案的编写。因每个公司都有自己的特点,大多数公司均是按自己的业务需求进行自行开发,所以目前市场上通用的第三方软件不多,目前同类软件如walle等线上升级部署软件。现有技术目前使用比较麻烦,部署效率低,不能批量修改配制文件,没有形成一个完整的闭环。

在互联网行业中,做服务端开发的工程师将程序开发完毕后,需要将程序代码或者编译结果部署到服务器上运行,才能间接的为用户提供服务,这个过程称为代码发布。应用是通过编程人员编写代码文件构成的,需求变更需要修改代码文件,把修改过的文件更新到服务器,执行重新加载文件等命令,让代码生效的过程可以称为代码发布与部署。

现有技术中,发布代码与部署的方式主要是,开发人员将代码提交到代码管理服务器,发布人员将修改后的代码传送至中央发布服务器,在执行发布的一侧测试,当测试达到发布要求后,将修改后的代码由中央发布服务器分发到应用服务器,执行相应命令,使代码生效。

采用现有技术,代码在代码管理服务器,中央发布服务器,应用服务器上的一致性无法得到全方面的保障,更新之前,需要人为一一比对,得到要更新的文件,效率低下,如果全部代码都重新发布一遍,服务器之间的传输效率会很低,尤其是比较大的文件,很浪费资源,应用的部署需要执行命令让代码生效,现有技术中一般发布完,就会执行相应的命令,执行过程比较长,一般不知道命令什么时候全部执行完,以及是否成功,需要测试人员验证。



技术实现要素:

为解决现有技术存在的问题,本发明提供了一种代码自动发布方法,所述方法包括:

对待发布代码进行本地测试,如果所述待发布代码符合第一测试要求时,将所述待发布代码发送给版本服务器;

版本服务器将所述待发布代码在测试环境下进行测试,如果符合第二测试要求,则将所述待发布代码提交至预发布服务器;

所述预发布服务器对所述待发布代码进行测试,如果符合第三测试要求则将所述待发布代码发送给代码发布服务器;

所述代码发布服务器将待发布代码同步至线上服务器,生成已发布代码。

进一步地,所述方法还包括,在所述预发布服务器拉取所述待发布代码,如果所述待发布代码包括新的变更代码,则将所述新的变更代码发送至发布服务器。

进一步地,所述方法还包括,所述预发布服务器.对所述待发布代码进行定时检测,如果所述待发布代码包括新的变更代码,则将所述新的变更代码发送至发布服务器。

进一步地,所述方法还包括,所述线上服务器将已发布代码发送至预发布服务器进行版本同步。

进一步地,所述方法还包括,所述预发布服务器将已发布代码发送至代码发布服务器与待发布代码进行对比,检测是否有代码发生变更。

进一步地,所述方法还包括,所述第一测试为单元测试,所述第二测试为功能测试。

进一步地,本发明还涉及一种代码自动发布装置,所述装置包括,

本地服务器用于对待发布代码进行本地测试,如果所述待发布代码符合第一测试要求时,将所述待发布代码发送给版本服务器;

版本服务器用于对所述待发布代码在测试环境下进行测试,如果符合第二测试要求,则将所述待发布代码提交至预发布服务器;

预发布服务器用于对所述待发布代码进行测试,如果符合第三测试要求则将所述待发布代码发送给代码发布服务器;

代码发布服务器用于将待发布代码同步至线上服务器,生成已发布代码;

线上服务器用于发布代码。

本发明实施例提供的代码自动发布方法对项目代码进行比对和升级,实现快速和稳定的升级,提高了工作效率,减少人为手动操作而导致的出错。

附图说明

图1为本发明实施例的代码自动发布方法的流程图;

图2为本发明实施例的代码自动发布装置的示意图。

具体实施方式

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

图1为本发明实施例提供的代码自动发布方法的流程图,如图所示,

步骤101:对待发布代码进行本地测试是否符合第一测试要求。

研发人员完成待发布代码后,需要先对待发布代码进行本地测试,即研发人员对待发布代码首先进行单元自测,检测待发布代码是否达到了预先设定的期望值。

步骤102:若待发布代码不符合第一测试要求,则将所述待发布代码进行提交修改。

正常情况下,待发布代码可能会存在各种各样的问题,导致其本地测试的结果不符合第一测试要求,当待发布代码不符合第一测试要求时,将其提交至研发人员处,研发人员对待发布代码进行修改。修改完成后再次对待发布代码执行步骤101,直到待发布代码满足第一测试要求为止。

步骤103:若待发布代码符合第一测试要求,将待发布代码发送给版本服务器。

当待发布代码满足第一测试要求时,研发人员将待发布代码发送给版本服务器,并自动发邮件给测试人员。所述版本服务器用于检测和记录待发布代码的版本,方便各个研发人员、测试人员对现在的研发进度和代码版本有着明确的了解。

步骤104:版本服务器将待发布代码在测试环境下测试是否符合第二测试要求。

版本服务器接收到研发人员发送的待发布代码后,将待发布代码置于测试环境下进行功能测试,按照研发人员设计的测试说明进行详细测试。如果待发布代码在测试流程中出现问题,则意味着不符合第二测试要求。

步骤105:若待发布代码不符合第二测试要求,则将所述待发布代码进行提交修改。

当待发布代码不符合第二测试要求时,将其提交至研发人员处,研发人员对待发布代码进行修改。修改完成后再次对待发布代码执行步骤101,重新开始测试过程,直到待发布代码满足第二测试要求为止。所述待发布代码不符合第二测试要求的情况有很多,比如输入输出接口存在错误,或者函数内部存在错误等。

步骤106:若待发布代码符合第二测试要求,将所述待发布代码提交至预发布服务器。

当待发布代码满足第二测试要求时,测试环境将待发布代码发送给版本服务器,并自动发邮件给运维人员。运维人员通过自动发布程序,将待发布代码发布至公司内网的预发布服务器上,然后自动发送邮件给测试人员。

步骤107:预发布服务器对待发布代码进行测试是否符合第三测试要求。

预发布服务器接收到待发布代码后,测试人员在预发布服务器上对所述待发布代码进行测试,比如进行功能测试或者性能测试,测试人员按照研发人员设计的测试说明进行详细测试。如果待发布代码在测试流程中出现问题,则意味着不符合第三测试要求。

步骤108:若待发布代码不符合第三测试要求,则将所述待发布代码进行提交修改。

当待发布代码不符合第三测试要求时,将其提交至研发人员处,研发人员对待发布代码进行修改。修改完成后再次对待发布代码执行步骤101,重新开始测试过程,直到待发布代码满足第三测试要求为止。所述待发布代码不符合第三测试要求的情况有很多,比如输入输出接口存在错误,或者函数内部存在错误等。

步骤109:若待发布代码符合第三测试要求,则将所述待发布代码发送给代码发布服务器。

测试人员在预发布服务器上对待发布代码进行第三次测试且通过时,自动发送邮件给运维人员,所述运维人员通过发布平台将待发布代码发布至代码发布服务器。

进一步地,所述方法还包括,在所述预发布服务器拉取所述待发布代码,如果所述待发布代码包括新的变更代码,则将所述新的变更代码发送至发布服务器。

本发明还可用于更新代码或者升级代码,本实施例的版本控制采用版本服务器来进行管理,并且在预发布服务器上配置了相关平台的同步模块。

所述预发布服务器按照一定的规则拉取所述待发布代码,并对所述待发布代码进行检测,如果检测发现所述待发布代码中包括有新的变更代码,且所述待发布代码符合第三测试的要求,则将所述待发布代码发送至发布服务器,发布服务器将代码更新后,自动发送邮件,且生成版本日志记录历史版本的详细信息。

所述方法还包括,所述预发布平台对所述待发布代码进行定时检测,如果所述待发布代码包括新的变更代码,则将所述新的变更代码发送至发布平台。

具体的,所述预发布服务器定时拉取所述待发布代码,并对所述待发布代码进行检测,如果检测发现所述待发布代码中包括有新的变更代码,且所述待发布代码符合第三测试的要求,则将所述待发布代码发送至发布服务器,发布服务器将代码更新后,自动发送邮件,且生成版本日志记录历史版本的详细信息。

步骤110:所述代码发布服务器将待发布代码同步至线上服务器,生成已发布代码。

运维人员通过发布平台将待发布代码发布至代码发布服务器上后,代码发布服务器将待发布代码同步至线上服务器,生成已发布代码,并且发布平台自动发送所述代码文件列表的邮件。

进一步地,所述线上服务器将已发布代码发送至预发布服务器进行版本同步。

现有技术中,对于代码的更新或者升级是通过人工监测,本发明在线上服务器和预发布服务器之间建立通道,所述线上服务器接收到待发布代码并将其发布生成已发布代码后,将所述已发布代码发送至所述预发布服务器,所述预发布服务器将所述已发布代码更新到已发布代码列表中,完成已发布代码在各个平台的版本同步操作。

进一步地,所述方法还包括,所述预发布服务器将已发布代码发送至代码发布服务器与待发布代码进行对比,检测是否有代码发生变更。

所述预发布服务器接收到线上服务器发送的已发布代码后,将已发布代码发送至代码发布服务器,代码发布服务器将接收到的已发布代码与待发布代码进行对比,检测待发布代码是否发生代码的变更,同时更新代码日志,记录各个版本的已发布代码的详细信息。若检测待发布代码是新代码,则所述代码发布服务器将待发布代码发送至线上服务器进行发布。

图2为本发明代码自动发布装置的示意图,如图所示,所述装置包括本地服务器1、版本服务器2、预发布服务器3、代码发布服务器4、线上服务器5。所述本地服务器1、版本服务器2、预发布服务器3、代码发布服务器4与线上服务器5依次通过信号连接。

本地服务器1用于对待发布代码进行本地测试,如果所述待发布代码符合第一测试要求时,将所述待发布代码发送给版本服务器2;

版本服务器2用于对所述待发布代码在测试环境下进行测试,如果符合第二测试要求,则将所述待发布代码提交至预发布服务器3;

预发布服务器3用于对所述待发布代码进行测试,如果符合第三测试要求则将所述待发布代码发送给代码发布服务器4;

代码发布服务器4用于将待发布代码同步至线上服务器5,

线上服务器5用于将待发布代码生成已发布代码。

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

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

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

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