【技术实现步骤摘要】
基于Git的项目版本发布方法、装置、设备及介质
本专利技术涉及分布式部署领域,尤其涉及一种基于Git的项目版本发布方法、装置、计算机设备及存储介质。
技术介绍
目前,在项目开发领域,从项目测试到项目上线,项目开发人员或者项目委托方会针对项目提出不同的需求,因此,往往会出现多个项目版本,在现有技术中,通常基于svn(subversion,是一个开放源代码的版本控制系统)单一主干集中式的发布系统,以如下方式实现对多个项目版本的管理:所有开发人员在一个svn仓库的相同主干上进行开发,测试人员在同一个测试环境进行测试验证,最终手动将所修改的文件增量部署上线。现有技术方案的不足之处在于:首先,开发和测试阶段无法实现代码远程共享至多台目标服务器,且测试人员只能在同一个配置文件的环境下进行测试验证;其次,在将项目版本部署上线时,极容易出现文件漏发布和夹带发布问题,并且部署上线时只有代码进行了部署,而配置文件则需要人工对每台目标服务器进行部署;同时,部署上线后出现异常时回滚至历史版本的操作复杂。
技术实现思路
本专利技术 ...
【技术保护点】
1.一种基于Git的项目版本发布方法,其特征在于,包括:/n接收到项目版本创建发布指令,获取创建发布文件包;所述创建发布文件包中包括相互关联的初始版本号、初始版本文件和初始部署作业文件;所述初始版本文件包括初始代码文件和初始配置文件;所述初始部署作业文件中包含第一IP地址集合和初始部署命令文件;/n将所述初始版本文件存储至Git本地仓库,同时将所述初始版本文件推送至Git中央仓库;/n向所有与所述第一IP地址集合中的第一IP地址匹配的第一目标服务器发送含有所述初始版本号的版本初始指令;/n接收到所述第一目标服务器针对所述版本初始指令反馈的包含所述初始版本号的第一拉取指令之后 ...
【技术特征摘要】
1.一种基于Git的项目版本发布方法,其特征在于,包括:
接收到项目版本创建发布指令,获取创建发布文件包;所述创建发布文件包中包括相互关联的初始版本号、初始版本文件和初始部署作业文件;所述初始版本文件包括初始代码文件和初始配置文件;所述初始部署作业文件中包含第一IP地址集合和初始部署命令文件;
将所述初始版本文件存储至Git本地仓库,同时将所述初始版本文件推送至Git中央仓库;
向所有与所述第一IP地址集合中的第一IP地址匹配的第一目标服务器发送含有所述初始版本号的版本初始指令;
接收到所述第一目标服务器针对所述版本初始指令反馈的包含所述初始版本号的第一拉取指令之后,通过所述Git中央仓库,按照第一传输方式向所述第一目标服务器传输与所述第一拉取指令中包含的所述初始版本号关联的所述初始版本文件;所述第一传输方式为将与所述第一拉取指令中包含的所述初始版本号关联的所述初始版本文件直接传输至所述第一目标服务器;
根据所述初始部署命令文件,与所述第一目标服务器通过非交互式对话方式将所述初始版本文件安装至所述第一目标服务器;
接收到所有已反馈所述第一拉取指令的所述第一目标服务器发送的安装成功指令之后,确定所述创建发布文件包发布成功。
2.如权利要求1所述的基于Git的项目版本发布方法,其特征在于,所述确定所述创建发布文件包发布成功之后,包括:
接收到项目版本更新发布指令,获取更新发布文件包;所述更新发布文件包中包括相互关联的更新版本号、分支版本文件和更新部署文件;所述分支版本文件包括更新代码文件和更新配置文件;所述更新部署文件中包含第二IP地址集合和更新部署命令文件;
将所述分支版本文件存储至所述Git本地仓库,同时将所述分支版本文件推送至所述Git中央仓库;
向所有与所述第二IP地址集合中的第二IP地址匹配的第二目标服务器发送含有所述分支版本号的版本更新指令;
接收到所述第二目标服务器针对所述版本更新指令反馈的包含所述分支版本号的第二拉取指令之后,通过所述Git中央仓库,按照第二传输方式向所述第二目标服务器传输与所述第二目标服务器对应的差异文件;所述第二传输方式为根据所述第二拉取指令中与所述分支版本号关联的本地Git文件,确定与所述第二目标服务器对应的差异文件,并将与所述第二目标服务器对应的差异文件传输至所述第二目标服务器;
根据所述更新部署命令文件,与所述第二目标服务器通过非交互式对话方式将接收到的所述分支版本文件更新至所述第二目标服务器;
接收到所有已反馈所述第二拉取指令的所述第二目标服务器发送的更新成功指令之后,确定所述更新发布文件包发布成功。
3.如权利要求2所述的基于Git的项目版本发布方法,其特征在于,所述确定所述更新发布文件包发布成功之后,包括:
接收到项目版本回滚发布指令,获取回滚发布文件包;所述回滚发布文件包中包括回滚版本号和回滚部署作业文件;所述回滚部署作业文件包含第三IP地址集合和回滚部署命令文件;
自所述Git本地仓库中查询并获取与所述回滚版本号一致的版本号关联的版本文件;
将与所述回滚版本号一致的版本号关联的版本文件推送至所述Git中央仓库;
向所有与所述第三IP地址集合中的第三IP地址匹配的第三目标服务器发送含有所述回滚版本号的版本回滚指令;
接收到所述第三目标服务器针对所述版本回滚指令反馈的包含有所述回滚版本号的第三拉取指令之后,通过所述Git中央仓库,按照第三传输方式向所述第三目标服务器传输与所述第三目标服务器对应的差异文件;所述第三传输方式还为根据所述第三拉取指令中与所述回滚版本号关联的本地Git文件,确定与所述第三目标服务器对应的差异文件,并将与所述第三目标服务器对应的差异文件传输至所述第三目标服务器;
根据所述回滚部署命令文件,与所述第三目标服务器通过非交互式对话方式将所述版本文件回滚至所述第三目标服务器;
接收到所有已反馈所述第三拉取指令的所述第三目标服务器发送的回滚成功指令之后,确定所述回滚发布文件包发布成功。
4.如权利要求1所述的基于Git的项目版本发布方法,其特征在于,所述通过所述Git中央仓库,按照第一传输方式向所述第一目标服务器传输与所述第一拉取指令中包含的所述初始版本号关联的所述初始版本文件,包括:
通过所述Git中央仓库向所述第一目标服务器传输所述初始版本文件;
接收到所述第一目标服务器创建与所述初始版本号关联的本地Git文件之后反馈的创建成功指令。
5.如权利要求2所述的基于Git的项目版本发布方法,其特征在于,所述接收到所述第二目标服务器反馈的包含所述分支版本号的第二拉取指令之后,通过所述Git中央仓库,按照第二传输方式向所述第二目标服务器传输与所述第二目...
【专利技术属性】
技术研发人员:耿铭,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。