[发明专利]一种基于git的代码发布系统有效
申请号: | 201811275390.8 | 申请日: | 2018-10-30 |
公开(公告)号: | CN109522025B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 全郑静;吴建明 | 申请(专利权)人: | 深圳市小赢信息技术有限责任公司 |
主分类号: | G06F8/60 | 分类号: | G06F8/60;G06F8/71 |
代理公司: | 上海精晟知识产权代理有限公司 31253 | 代理人: | 杨军 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 git 代码 发布 系统 | ||
本发明提供一种基于git的代码发布系统,其特征是,包括git仓库、工单信息数据库、目标机器集群、配置管理后台、部署操作平台五大模块。本发明通过设计一种基于git版本控制和改良版的gitflow工作流方式的多分支、多环境、并行开发、串行发布的方案,有效解决了测试阶段多个需求相互干扰、多人协同开发和代码远程共享、漏发布和夹带发布等问题。
技术领域
本发明涉及互联网技术领域,具体的来说涉及一种基于git的代码发布系统。
背景技术
现有的基于svn单一主干的发布系统,以如下方式实现:
所有开发人员在一个仓库的相同主干上进行开发、测试人员在同一个测试环境进行测试验证,最终手动将所修改的文件增量部署上线。
现有方案的主要缺点在于:
测试阶段各个需求相互冲突相互干扰,严重影响研发进程;
开发和测试阶段无法实现多人协同工作和代码远程共享;
部署上线时极容易出现文件漏发布和夹带发布问题。
所以继续研发一种新的发布系统,以解决测试阶段多个需求相互干扰、多人协同开发和代码远程共享、漏发布和夹带发布等问题。
发明内容
本发明所要解决的技术问题在于,克服现有技术中存在的问题,提供一种基于git的代码发布系统。
为了解决上述问题本发明的技术方案是这样的:
一种基于git的代码发布系统,包括git仓库、工单信息数据库、目标机器集群、配置管理后台、部署操作平台五大模块;
git仓库:存储所有项目的源代码。创建一个新项目时需要先在gitlab上创建一个新的git仓库,并且上传对应的源代码文件到仓库中。
工单信息数据库:存储所有项目的配置信息和各个项目下的所有工单信息。使用了mysql数据库,工单信息包括工单状态、提单人、测试人员、管理员、工单对应的分支名、所依赖的common仓库、创建时间、发布完成的tag标记、部署结果日志,供部署操作平台和配置管理后台使用。
目标机器集群:是一批docker和物理机器的集合,主要作为目标机器为部署操作平台分配给新工单所使用。目标机器集群主要划分为三类:测试docker、预发布机器、生产环境机器,其中测试docker由部署操作平台统一随机分配给所创建的工单,并且随着工单的结束而回收复用;预发布机器和生产环境机器相对固定,正常情况下不会变更。
配置管理后台:配置管理后台主要负责新项目接入发布系统的一系列配置信息的管理。包括仓库url地址、部署命令、项目依赖和权限分配等,配置管理后台通过调用gitlab的api接口识别到新项目仓库,匹配项目成功后保存配置信息,系统将该项目相关配置信息写入到工单信息数据库中的配置表里面。
部署操作平台调用git仓库、工单信息数据库、目标机器集群来完成工单整个生命周期各个环节的功能;
首先部署操作平台读取工单信息数据库中的配置表,展示所有已配置的项目,开发人员在一个项目下创建一个发布工单,部署操作平台通过调用gitlab的创建分支的api接口在仓库上创建一个新的feature分支,同时从目标机器集群空闲的机器中随机获取一台机器分配给该发布工单使用,并把对应的机器ip写入到工单数据库中;
接着开发人员在点击部署功能时,部署操作平台通过python的paramiko模块向目标机器发出部署指令,目标机器接到部署指令后,立即执行部署命令通过http协议从git远程仓库拉取对应仓库对应分支的代码到本机的项目目录中,完成部署操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市小赢信息技术有限责任公司,未经深圳市小赢信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811275390.8/2.html,转载请声明来源钻瓜专利网。