
技术摘要:
本发明涉及线上产品发布技术领域,提供了一种代码定时发布方法及系统,所述方法包括:S1、提交更新部分的代码,生成相应脚本;S2、定时检测,执行满足条件的脚本;S3、在指定的时间之前的半小时发布所述更新部分的代码至预发布环境;S4、自动检测更新的系统在所述预发 全部
背景技术:
许多依托于互联网的线上产品(虚拟产品),需要进行不断的更新。更新时,一般是 增加新功能或者更新部分功能,从而满足用户的不同需求。每次更新都需要更新代码,测试 代码以及发布新代码,在遇到各种线下或者线上的紧急情况的时候,也需要紧急修改代码 并重新发布,以免造成公司的损失。在业务比较繁忙的时候,代码发布次数较多,发布内容 较多,导致资源需求量上升,给公司带来业务量增长的同时也付出了较高的成本。 目前的代码发布方式是基于Git lab进行的,一般需要程序员蹲点、定时进行手动 上传。例如,新项目要求在夜间12点准时上线,则程序员就需要守在12点钟准时发布,但是 通过人工手动上传往往无法做到12点0分0秒发布,对于一些时间要求比较精确的项目来说 是一个极大的弊端。另外,现有的更新过程需要程序员守在电脑旁,而且发布后还需要测试 人员,运维人员等进行线上监测,在稳定后方可离开,这样导致大量的人力资源的浪费,给 公司带来了人力损失,使得公司的开发成本增加。 所以,需要开发一种能够实现代码自动检测,自动发布,定时发布的系统。
技术实现要素:
为解决上述问题,本发明提出了一种代码定时发布方法,用于线上产品的自动定 时更新,包括如下步骤: S1、提交更新部分的代码,生成定时可执行的上线脚本; S2、定时检测,执行满足条件的脚本; S3、在指定的时间之前的半小时发布所述更新部分的代码至预发布环境; S4、自动化测试,检测更新的系统在所述预发布环境中运行是否正常,正常则继续 执行下一步,否则执行步骤S1; S5、在指定的时间发布所述更新部分的代码至线上环境; S6、自动化测试,检测更新的系统在线上环境中运行是否正常,正常则向开发人员 报告更新成功,否则告知开发人员更新失败,并且执行回滚操作,将所述线上产品恢复至本 次更新前的版本。 上述的代码定时发布方法,其中,在步骤S1之前还包括:对所述更新部分的代码进 行本地自测。 上述的代码定时发布方法,其中,步骤S1中,提交的字段至少包括代码发布原因、 代码分支、正式发布时间。 上述的代码定时发布方法,其中,步骤S1中生成的定时命令添加在所述上线脚本 的末尾,步骤S2中,根据所述定时命令检测是否需要执行预发布或发布操作; 3 CN 111580858 A 说 明 书 2/5 页 并且,在步骤S4中,如预发布失败,则删除所述两条定时发布命令。 基于同一发明构思,本发明的另一目的在于提供一种代码定时发布系统,用于线 上产品的自动定时更新,包括: 代码提交模块,用于提交更新部分的代码,并生成脚本; 预发布模块,用于在第一指定时间在预发布环境中发布所述更新部分的代码; 线上模块,用于在第二指定时间向线上发布经所述预发布模块预发布过的代码。 上述的代码定时发布系统,其中,所述代码提交模块包括: 本地自测子模块,在提交代码前对所述更新部分的代码进行单元自测,以检测所 述更新部分的代码是否已达到预期; 脚本生成子模块,将所述更新部分的代码分别提交到预发布环境和线上环境,并 生成脚本。 上述的代码定时发布系统,其中,所述预发布模块包括: 定时检测子模块,定时检测所述代码提交模块生成的脚本,执行满足条件的脚本, 并于所述第一指定时间将所述更新部分的代码发布到预发布环境中; 测试子模块,在预发布环境中试运行更新后的线上产品,如测试不能通过,则停止 发布并提示需重新提交所述更新部分的代码。 上述的代码定时发布系统,其中,所述线上模块包括: 代码发布子模块,于第二指定时间向线上发布经所述测试子模块测试的代码; 线上测试模块,在线上运行更新后的线上产品,并判断线上运行是否正常,如正常 则通知开发人员发布正常,如不正常则通知开发人员发布失败,需重提交更新部分的代码。 与现有技术相比,本发明的代码发布通过Lunix系统中用于管理任务的工具命令 crontab定时执行,可将系统发布的时间精确的控制在1分钟内。整个过程中,自动检测、自 动发布以及定时发布都可以在完全无人监管的情况下,由计算机进行,技术人员无需加班, 节省了人力成本。无需人工操作则可以降低犯错的概率,从而大大降低bug发生的概率。总 的来说,给公司降低了人力支出,节约成本,提升用户体验效果,降低技术开发人员的劳动 强度,提高了工作效率,使得公司效益进一步提高。 附图说明 本领域技术人员可知,以下的附图仅仅列举出本发明的一些实施例,在不付出创 造性劳动的前提下,本领域技术人员还可以根据这些附图获得其他同一性质的实施例(附 图)。 图1是本发明一实施例的流程图; 图2是将图1细化后的流程示意图。