一种多服务器代码发布方法及系统技术方案

技术编号:29209885 阅读:14 留言:0更新日期:2021-07-10 00:46
一种多服务器代码发布方法及系统,通过Jenkins任务拉取Git仓库代码,构建配置发布参数,将代码发布项目推送到预发布服务器测试;测试通过后,创建代码发布项目发布申请,对代码发布申请进行审核;审核通过后,将待进行同步的代码发布项目写入标识,并创建Git仓库当前代码的新标签,将测试并审核完毕的代码同步到正式平台的每台负载;负载定时查询是否有代码发布项目需要同步,当检测到有要同步的代码发布项目后,根据项目下文件的时间判定是否进行同步处理;当所有负载同步完成后,回写任务发布记录,根据负载是否同步成功进行发布状态标识。本技术方案实现多模块代码独立、可视化发布,有效控制发布和实现代码发布的机动性。有效控制发布和实现代码发布的机动性。有效控制发布和实现代码发布的机动性。

【技术实现步骤摘要】
一种多服务器代码发布方法及系统


[0001]本专利技术涉及代码处理
,具体涉及一种多服务器代码发布方法及系统。

技术介绍

[0002]代码开发时所使用的机器称为开发机,运行代码并为用户提供服务的服务器称为线上服务器,代码发布这个应用场景可以抽象为将程序代码从开发机拷贝到线上服务器。为了进行代码的发布管理,人们进行了代码发布方案的开发。
[0003]Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
[0004]目前,代码发布一般从Git仓库获取源码并用Jenkins构建,然后将代码发布到预发布服务器,创建同步申请,审核通过后,将预发布服务器上的代码同步到平台所有负载上,单台服务器代码同步成功后回写成功标识,根据所有回写标识来确认此次发布成功。现有技术方案代码发布不够直观,无法自动构建,不能自动进行同步并确认同步结果,缺少审核把关,难以有效控制发布和保持代码稳定。

技术实现思路

[0005]为此,本专利技术提供一种多服务器代码发布方法及系统,实现产品多模块代码独立、有控制和可视化发布,解决平台各负载代码无法自动同布和确认同步结果问题。
[0006]为了实现上述目的,本专利技术提供如下技术方案:一种多服务器代码发布方法,包括以下步骤:
[0007]构建代码发布项目,通过Jenkins任务拉取Git仓库代码,采用发布脚本分平台构建配置发布参数,将所述代码发布项目推送到预发布服务器并在预发布平台进行测试;
[0008]当所述代码发布项目在预发布平台测试通过后,创建代码发布项目发布申请,对所述代码发布申请进行审核;
[0009]当所述代码发布申请审核通过后,将待进行同步的代码发布项目写入标识,并创建Git仓库当前代码的新标签,将测试并审核完毕的代码同步到正式平台的每台负载;
[0010]正式平台的每台负载定时查询是否有代码发布项目需要同步,当检测到有要同步的代码发布项目后,根据要同步代码发布项目下文件的时间判定是否进行同步处理;
[0011]当所有负载同步完成后,回写任务发布记录,根据负载是否同步成功进行发布状态标识。
[0012]作为多服务器代码发布方法的优选方案,分平台选定多个任务按照指定日期的版本号批量构建发布以进行独立部署平台升级。
[0013]作为多服务器代码发布方法的优选方案,当负载检测到有要同步的代码发布项目后,运行shell脚本检测待同步项目下指定文件的预发布时间;当负载时间大于预发布时间时,不执行对应指定文件的同步;当负载时间小于预发布时间时,将对应指定文件同步到负
载。
[0014]作为多服务器代码发布方法的优选方案,当遍历完代码发布项目下所有文件,给预发布写成功回执,当发生异常给预发布写失败回执或重新创建发布申请同步代码。
[0015]作为多服务器代码发布方法的优选方案,当所有负载都同步完成后,回写任务发布记录,并进行任务状态判断,如果负载标识全为成功,任务状态置为成功,当有一台负载标识为失败时,将任务状态置为失败。
[0016]作为多服务器代码发布方法的优选方案,通过所述任务发布记录进行代码发布项目的代码回滚,每条所述任务发布记录对应Git仓库里的一个标签,通过任务发布记录上的标签来进行代码的回滚。
[0017]本专利技术还提供一种多服务器代码发布系统,包括:
[0018]代码发布项目构建模块,用于构建代码发布项目,通过Jenkins任务拉取Git仓库代码,采用发布脚本分平台构建配置发布参数;
[0019]测试模块,用于将所述代码发布项目推送到预发布服务器并在预发布平台进行测试;
[0020]发布申请模块,用于当所述代码发布项目在预发布平台测试通过后,创建代码发布项目发布申请;
[0021]发布审核模块,用于对所述代码发布申请进行审核;
[0022]标识写入模块,用于当所述代码发布申请审核通过后,将待进行同步的代码发布项目写入标识,并创建Git仓库当前代码的新标签;
[0023]负载同步模块,用于将测试并审核完毕的代码同步到正式平台的每台负载;
[0024]定时查询模块,用于正式平台的每台负载定时查询是否有代码发布项目需要同步,当检测到有要同步的代码发布项目后,根据要同步代码发布项目下文件的时间判定是否进行同步处理;
[0025]任务发布记录模块,用于当所有负载同步完成后,回写任务发布记录,根据负载是否同步成功进行发布状态标识。
[0026]作为多服务器代码发布系统的优选方案,当负载检测到有要同步的代码发布项目后,运行shell脚本检测待同步项目下指定文件的预发布时间;当负载时间大于预发布时间时,不执行对应指定文件的同步;当负载时间小于预发布时间时,将对应指定文件同步到负载。
[0027]作为多服务器代码发布系统的优选方案,当遍历完代码发布项目下所有文件,给预发布写成功回执,当发生异常给预发布写失败回执或重新创建发布申请同步代码;
[0028]当所有负载都同步完成后,回写任务发布记录,并进行任务状态判断,如果负载标识全为成功,任务状态置为成功,当有一台负载标识为失败时,将任务状态置为失败。
[0029]作为多服务器代码发布系统的优选方案,回滚模块,用于通过所述任务发布记录进行代码发布项目的代码回滚,每条所述任务发布记录对应Git仓库里的一个标签,通过任务发布记录上的标签来进行代码的回滚。
[0030]本专利技术具有如下优点:首先构建代码发布项目,通过Jenkins任务拉取Git仓库代码,采用发布脚本分平台构建配置发布参数,将代码发布项目推送到预发布服务器并在预发布平台进行测试;当代码发布项目在预发布平台测试通过后,创建代码发布项目发布申
请,对代码发布申请进行审核;当代码发布申请审核通过后,将待进行同步的代码发布项目写入标识,并创建Git仓库当前代码的新标签,将测试并审核完毕的代码同步到正式平台的每台负载;正式平台的每台负载定时查询是否有代码发布项目需要同步,当检测到有要同步的代码发布项目后,根据要同步代码发布项目下文件的时间判定是否进行同步处理;当所有负载同步完成后,回写任务发布记录,根据负载是否同步成功进行发布状态标识。本专利技术技术方案实现产品多模块代码独立发布管理,实现可视化发布,简单易操作,发布结果一目了然,日志记录详细;能自动同步并确认同步结果,有效控制发布和实现代码发布的机动性。
附图说明
[0031]为了更清楚地说明本专利技术的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0032]图1为本专利技术实施例中提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多服务器代码发布方法,其特征在于,包括以下步骤:构建代码发布项目,通过Jenkins任务拉取Git仓库代码,采用发布脚本分平台构建配置发布参数,将所述代码发布项目推送到预发布服务器并在预发布平台进行测试;当所述代码发布项目在预发布平台测试通过后,创建代码发布项目发布申请,对所述代码发布申请进行审核;当所述代码发布申请审核通过后,将待进行同步的代码发布项目写入标识,并创建Git仓库当前代码的新标签,将测试并审核完毕的代码同步到正式平台的每台负载;正式平台的每台负载定时查询是否有代码发布项目需要同步,当检测到有要同步的代码发布项目后,根据要同步代码发布项目下文件的时间判定是否进行同步处理;当所有负载同步完成后,回写任务发布记录,根据负载是否同步成功进行发布状态标识。2.根据权利要求1所述的一种多服务器代码发布方法,其特征在于,分平台选定多个任务按照指定日期的版本号批量构建发布以进行独立部署平台升级。3.根据权利要求1所述的一种多服务器代码发布方法,其特征在于,当负载检测到有要同步的代码发布项目后,运行shell脚本检测待同步项目下指定文件的预发布时间;当负载时间大于预发布时间时,不执行对应指定文件的同步;当负载时间小于预发布时间时,将对应指定文件同步到负载。4.根据权利要求3所述的一种多服务器代码发布方法,其特征在于,当遍历完代码发布项目下所有文件,给预发布写成功回执,当发生异常给预发布写失败回执或重新创建发布申请同步代码。5.根据权利要求4所述的一种多服务器代码发布方法,其特征在于,当所有负载都同步完成后,回写任务发布记录,并进行任务状态判断,如果负载标识全为成功,任务状态置为成功,当有一台负载标识为失败时,将任务状态置为失败。6.根据权利要求1所述的一种多服务器代码发布方法,其特征在于,通过所述任务发布记录进行代码发布项目的代码回滚,每条所述任务发布记录对应Git仓库里的一个标签,通过任务发布记录上的标签来进行代码的...

【专利技术属性】
技术研发人员:孟艳冬郭泽谦杨栋东
申请(专利权)人:北京优奥创思科技发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1