一种基于SVN资源库自动化构建发布方法与装置与流程

文档序号:13804574阅读:121来源:国知局
一种基于SVN资源库自动化构建发布方法与装置与流程

本发明涉及软件开发测试领域,尤其涉及一种基于svn资源库自动化构建发布方法与装置。



背景技术:

在自动构建发布部署的实现过程中,现有技术存在以下几种方法:

根据需要构建的源代码目录,读取所述源代码目录下所有文件和目录;根据需要构建的任务和配置的构建任务文件,执行相应的任务构建脚本,生成构建的代码发布dist目录和文件;根据需要部署的项目路径,将构建完成的代码dist目录下的文件拷贝到相应目录下。

拉取程序代码:从版本控制系统的代码管理仓库中拉取需要进行版本编译与发布的程序的程序代码;新建预处理模板:将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板;加载预处理模板:选择需要加载的若干预处理模板,并对若干所述预处理模板的生效顺序进行设置;应用预处理模板:将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效;编译与发布:对预处理模板生效后的所述程序代码进行版本编译与发布。

以上自动构建发布实现步骤和方法中,通常是手动拉去源代码到本地进行构建,在整个项目发布过程中未做到全程自动化发布操作,还需手工进行项目的发布部署操作,对整个项目构建与发布的步骤,没有对应的日志记录,如一个环境出现异常,不能快速的追踪问题原因,提高了整体流程的难度。以上方法中不能同时支持多台服务器上的发布与监控操作。



技术实现要素:

为了解决上述问题,本发明提出一种基于svn资源库自动化构建发布的方法与装置。

具体的,本发明采用的技术方案如下:

第一方面,本发明提供了一种基于svn资源库自动化构建发布方法,所述方法包括以下步骤:

s1.通过所述自动化构建发布装置,自动监控指定svn资源库源代码文件版本变化,若所述指定svn资源库源代码文件版本发生变化,则执行s2,否则执行s1;

s2.自动下载所述指定svn资源库最新源代码文件到预先配置的本地下载目录路径下,记录当前svn资源库源代码文件版本号;

s3.自动执行项目程序编译与构建,并判断构建是否成功,若构建成功则执行s4,若构建失败则输出失败信息并终止操作;

s4.得到并获取最新项目程序包,通过远程服务器通道上传所述最新项目程序包到预先配置的指定服务器存放目录路径下;

s5.根据预先配置的指定服务器发布目录路径,找到旧项目程序包,通过远程服务器通道进行备份,若备份成功,执行s6,若备份失败则输出失败信息并终止操作;

s6.根据预先配置的项目服务进程端口找到服务进程,关闭旧的服务进程并清理所述旧项目程序包;

s7.复制所述最新项目程序包到所述指定服务器发布目录路径下,重新启动服务并判断重启是否成功,若重启成功,完成发布,若重启失败,执行s8;

s8.输出失败信息,执行项目程序的备份还原并重启服务。

进一步的,项目程序包的备份、替换、还原、监控信息和日志的输出及服务的重启可以采用shell脚本执行。

第二方面,本发明提供了一种基于svn资源库自动化构建发布装置,包括:

监控模块,用于监控指定svn资源库源代码文件版本变化,若所述指定svn资源库源代码文件版本发生变化,则自动下载所述指定svn资源库最新源代码文件到预先配置的本地下载目录路径下,并记录当前svn资源库源代码文件版本号;

编译构建模块,用于自动执行项目程序编译与构建,并得到最新的项目程序包;

上传模块,用于通过远程服务器通道上传最新的项目程序包到预先配置的指定服务器存放目录路径下;

发布模块,用于通过远程服务器通道执行最新的项目程序部署发布操作。

进一步的,所述编译构建模块在自动执行项目程序编译与构建后,判断构建是否成功,若构建成功,则得到并获取最新项目程序包,若构建失败,则输出失败信息并终止操作。

进一步的,所述发布模块还用于当项目程序包上传成功后,根据预先配置的指定服务器发布目录路径,找到旧项目程序包,通过远程服务器通道进行备份。

进一步的,所述发布模块在执行备份后判断备份是否成功,若备份成功,则根据预先配置的项目服务进程端口找到服务进程,先关闭旧的服务进程,再清理所述旧项目程序包,若备份失败,则输出失败信息,并终止操作。

进一步的,所述发布模块在清理所述旧项目程序包后,复制所述最新项目程序包到所述指定服务器发布目录路径下,并执行重启服务操作,重新启动服务。

进一步的,所述发布模块在执行重启服务后,判断是否重启成功,若重启成功,完成发布,若重启失败,则输出失败信息,执行项目程序备份还原,还原完成后重启服务。

进一步的,项目程序包的备份、替换、还原、监控信息和日志的输出及服务的重启可以采用shell脚本执行。

本发明的有益效果在于:无需手动进行替换程序包、备份及重启等操作,只需简单配置相关项目编译构建与部署服务器信息,即可在整个项目发布过程中做到自动化发布操作,自动部署失败后,装置会输出对应的错误信息,直接暴露错误点,可快速的追踪问题原因,提高了整体项目构建与部署过程的效率与安全,同时支持多台服务器上的发布与监控操作,极大的缩减了发布所需的操作时间。

附图说明

图1是本发明提供的一种基于svn资源库自动化构建发布方法的流程示意图;

图2是本发明提供的一种基于svn资源库自动化构建发布装置的结构示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

如图1所示,本发明提供了一种基于svn资源库自动化构建发布方法,所述方法包括以下步骤:

s1.通过所述自动化构建发布装置,自动监控指定svn资源库源代码文件版本变化,若所述指定svn资源库源代码文件版本发生变化,则执行s2,否则执行s1;

s2.自动下载所述指定svn资源库最新源代码文件到预先配置的本地下载目录路径下,记录当前svn资源库源代码文件版本号;

s3.自动执行项目程序编译与构建,并判断构建是否成功,若构建成功则执行s4,若构建失败则输出失败信息并终止操作;

s4.得到并获取最新项目程序包,通过远程服务器通道上传所述最新项目程序包到预先配置的指定服务器存放目录路径下;

s5.根据预先配置的指定服务器发布目录路径,找到旧项目程序包,通过远程服务器通道进行备份,若备份成功,执行s6,若备份失败则输出失败信息并终止操作;

s6.根据预先配置的项目服务进程端口找到服务进程,关闭旧的服务进程并清理所述旧项目程序包;

s7.复制所述最新项目程序包到所述指定服务器发布目录路径下,重新启动服务并判断重启是否成功,若重启成功,完成发布,若重启失败,执行s8;

s8.输出失败信息,执行项目程序的备份还原并重启服务。

进一步的,项目程序包的备份、替换、还原、监控信息和日志的输出及服务的重启可以采用shell脚本执行。

如图2所示,一种基于svn资源库自动化构建发布装置,包括:

监控模块,用于监控指定svn资源库源代码文件版本变化,若所述指定svn资源库源代码文件版本发生变化,则自动下载所述指定svn资源库最新源代码文件到预先配置的本地下载目录路径下,并记录当前svn资源库源代码文件版本号;

编译构建模块,用于自动执行项目程序编译与构建,并得到最新的项目程序包;

上传模块,用于通过远程服务器通道上传最新的项目程序包到预先配置的指定服务器存放目录路径下;

发布模块,用于通过远程服务器通道执行最新的项目程序部署发布操作。

本发明的一种基于svn资源库自动化构建发布装置的具体实施过程如下:

预先对一种基于svn资源库自动化构建发布装置进行配置,包括指定svn资源库源代码文件的地址、连接账号、密码、本地下载目录路径、项目程序编译构建所依赖的配置文件名称和路径、本地存放目录路径与名称、指定服务器ip地址、账号、密码、端口、指定服务器存放目录路径、指定服务器发布目录路径、备份路径名称与地址及shell脚本在服务器上的路径地址、名称。

完成配置后启动所述的一种基于svn资源库自动化构建发布装置,开始对指定svn资源库源代码文件版本变化进行监控,若所述指定svn资源库源代码文件版本发生变化则自动执行下载最新源代码文件到所述本地下载目录路径下,并记录当前svn资源库源代码文件版本号,以便于后续监控svn资源库源代码文件版本变化做出对应版本比对,若为首次配置、启动,所述的一种基于svn资源库自动化构建发布装置会立即下载当前svn资源库源代码文件到本地下载目录路径下,并记录当前svn资源库源代码文件版本号。

进一步的,所述编译构建模块根据配置的相关信息,找到已经下载到本地的源代码文件与构建依赖的配置文件,自动执行项目程序编译构建操作,通过自动化构建发布装置监控项目程序是否构建成功,若构建成功,则得到并获取最新项目程序包,存放在本地存放目录路径下;若构建失败,则输出失败信息,并终止操作,同时输出对应的日志信息,便于管理员及时发现问题并解决。

进一步的,所述上传模块通过ssh远程服务器通道上传最新的项目程序包到所述指定服务器存放目录路径下。

进一步的,所述发布模块还用于当项目程序包上传成功后,通过远程执行shell脚本实施发布部署,先根据所述指定服务器发布目录路径,找到旧项目程序包,通过远程服务器通道进行备份。

进一步的,所述发布模块在执行备份后判断备份是否成功,若备份成功,则根据预先配置的项目服务进程端口找到服务进程,先关闭旧的服务进程,再清理所述旧项目程序包,若备份失败,则输出失败信息,并终止操作,若本次发布为首次部署,则不执行备份。

进一步的,所述发布模块在清理所述旧项目程序包后,复制所述最新项目程序包到所述指定服务器发布目录路径下,并执行重启服务操作,重新启动服务。

进一步的,所述发布模块在执行重启服务后,判断是否重启成功,若重启成功,完成发布,若重启失败,则输出失败信息,执行项目程序备份还原,还原完成后重启服务。

进一步的,shell脚本被配置用于:

1)根据配置的指定服务器发布目录路径,找到旧项目程序包,通过远程服务器通道执行shell脚本进行备份;

2)执行备份后判断备份是否成功,若备份成功,则根据配置的项目服务进程端口找到服务进程,先关闭旧的服务进程,再清理旧项目程序包;若备份失败,则输出失败信息,并终止操作;

3)清理旧项目程序包后,复制最新项目程序包到指定服务器发布目录路径下,再执行重新启动服务操作,重新启动服务;

4)执行重启服务后,判断服务是否启动成功,若启动成功,则发布完成;若启动失败,则输出失败信息,执行项目程序备份还原,还原完成后重启服务;

5)在对项目程序部署发布的过程中进行信息监控与日志输出;

6)异常情况下,对已经备份的旧项目程序包进行备份还原。

整个过程中本发明的一种基于svn资源库自动化构建发布装置会不断的监控指定svn资源库源代码文件版本变化,若监控到指定svn资源库源代码文件版本发生变化,则自动执行下载最新源代码文件到本地下载目录路径下,下载完成后对最新的项目程序进行编译构建操作,得到最新的项目程序包,通过ssh远程服务器通道上传最新的项目程序包到指定服务器存放目录路径下,再通过ssh远程服务器通道执行shell脚本进行相关部署发布操作,即可完成整个项目的重新编译与发布。在整个自动化构建发布过程中,减少了手动编译构建项目程序包上所花的时间与人为导致的失败,减少了因人为发布过程中的失败率,特别在项目开发与测试阶段源代码频繁更新、构建、发布,降低了大量人力成本。同时在自动化构建发布过程中,每一步操作执行都会记录对应的日志信息,若在自动化构建与发布过程中出现异常,能最快的定位异常原因,便于维护人员追踪解决,提高了整个自动化构建发布过程中的稳定性,安全性。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、rom、ram等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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