public/技术规范/佛山许可登记代码与版本发布管理规范.md

8.0 KiB
Raw Permalink Blame History

佛山许可登记代码与版本发布管理规范

拟稿:研发中心
版本号1.1
发布时间2022.09.15

目录

一、 代码管理

代码仓库组织

建立Git组织团队名为fsrl,专门托管佛山许可登记系统的项目代码,并把开发人员权限统一管理起来。

组织地址: http://47.107.61.133:3000/fsrl

仓库列表

工程名 主题
fsrl-org 系统组织架构系统
fsrl-scr 商事登记2.0
fsrl-server 许可登记大后台
fsrl-approve 许可登记大前端
fsrl-biz-speq-web 质监网办PC前端

分支简介

工程的分支主要两种,一种是长期分支,一种是功能开发的主题分支。其中master,test是长期分支。

master分支

master分支始终代表生产环境的状态不能直接在上面提交代码。并大版本的发布应该进行打标签Tag存储正式发布的历史。

test分支

test 分支作为功能的预发布集成分支包含所有的代码提交记录。test分支代表针对下一版本的最新交付的代码。在合并了其他功能分支的情况下使用 test分支的代码进行测试然后与 master 分支合并。

开发分支

根据系统功能需求划分,创建对应的开发分支,负责存储相应的开发功能代码。开发人员从 master分支创建新分支并开发新功能。功能开发完毕后将对其进行测试与 test分支合并。

分支管理

  1. master分支上保留完全稳定的代码不允许直接push代码
  2. master分支只能从test分支合并push
  3. 开发分支创建基于master拉取创建并且命名采用英文定义
  4. 开发分支删除,当功能正式上线稳定一定的周期,并取得项目经理允许,即可删除分支。
  5. 工程代码与分支需要严格规范管理起来,划分清楚工程与分支的边界
  6. 设立开发分支代码管理负责人,负责日常合并、与其他开发模块代码协同等操作

跨工程分支管理

所谓的跨工程分支,意义上是同一个事项或功能开发,并涉及多个工程的分支管理。

  1. 同属一个功能开发,要统一相同的分支命名
  2. 分支拥有一致生命周期

例如:

功能模块 涉及工程 分支名称
正式环境 fsrl-scr,fsrl-server,fsrl-approve,fsrl-biz-speq-web master
测试环境 fsrl-scr,fsrl-server,fsrl-approve,fsrl-biz-speq-web test
一照通行 fsrl-scr,fsrl-server,fsrl-approve zzt
食药许可 fsrl-scr,fsrl-server,fsrl-approve food_med
质监许可 fsrl-scr,fsrl-server,fsrl-approve,fsrl-biz-speq-web speq

分支负责人职责

  1. 每天负责合并master主线代码到开发分支上
  2. 上线发版需要经过测试环境测试主动把代码合并test分支上
  3. 发版需要告知升级负责人,本次升级涉及那些工程以及说明,要通过文本方式告知留底

开发人员管理

  1. 编写代码时,要在正确的分支下开发,特别是负责多个模块开发人员,禁止代码串门提交不相关分支
  2. 每天来了先拉取同步远程仓库的代码并在下班或定期提交代码到Git仓库禁止攒着代码放大招
  3. 禁止个人独立创建开发分支,要经过负责人同意
  4. 开发规范可参考: 技术规范

二、 版本发布管理

版本发布工具

版本系统主要功能有,升级补丁,退回版本,补丁文件防篡检验。改生产环境发布版本,需要通过版本管理系统工具发布,禁止私自手动拷贝替换操作。

版本打包服务器172.22.80.91:22

控制端访问地址http://172.22.80.91:8086/incre/web#/login

佛山客户端访问地址http://19.130.241.146:9888/incre/web#/client/project

顺德客户端访问地址http://19.202.179.137:9888/incre/web#/client/project

版本发布时间

系统升级要按照制定的时间执行,各模块的负责人要提前把代码功能测试好并提交,并告知升级负责人。逾期得等到下次升级,紧急情况下,可以向项目经理申请,通过方可以执行升级。

环境 升级时间
生产环境 周四19点
测试环境 获得准许即可升级

发布流程管理

  1. 每次发布版本要经过测试环境验证流程测试环境test > 正式环境master
  2. 分支合并由分支负责人合并到test测试环境测试没有问题再由升级负责人合并到主线master上打包发布正式环境
  3. 测试环境发布版本,可以由分支负责人来负责打包升级
  4. 生产环境发布版本,由升级负责人打包升级,并且只能使用版本打包服务器打包
  5. 生产环境升级与回退只能使用版本管理系统操作

升级负责人职责

  1. 合并分支test至master主线
  2. 生产环境版本系统发布升级
  3. 系统回退版本的操作

开发人员管理

  1. 每次升级的代码,编写开发人员,需要保持在线状态
  2. 修改了工程的静态配置文件,需告知分支负责人
  3. 变更了库表字段,需告知分支负责人收集转交给数据库负责人

三、 代码分支与版本发布流程图

四、 常见情况

  1. 同一时间段多个功能要同时上线,涉及多个开发分支如何解决?

按照顺序一个开发分支合并到test分支测试通过。再接合并下一个开发分支。直至完毕再正式发版。建议业务上避免多功能上线。

  1. 存在当两个开发分支之间存在公用或基本是实现一样的功能的代码时?

答:应进行梳理应从需求角度划分功能分支,判断分支是否存在歧义。

  1. 开发过程中发现其他成员在不当地方编写业务功能?

答:叫上业务佬和技术佬,从两个角度进行评估。

  1. 发现有其他成员,存在操作不规范?

答:要及时制止,进行沟通。有必要则反馈上报。