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

150 lines
7.0 KiB
Markdown
Raw Normal View History

2022-02-21 15:02:21 +08:00
# 佛山许可登记代码与版本发布管理规范
> <div><span>拟稿:研发中心</span></div>
2022-03-10 12:34:20 +08:00
> <div><span>版本号0.0.7 </span></div>
> <div><span>发布时间2022.03.10 </span></div>
2022-02-21 15:02:21 +08:00
**目录**
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
2022-02-25 10:21:55 +08:00
2022-02-21 15:02:21 +08:00
- [一、 代码管理](#%E4%B8%80-%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86)
2022-03-09 13:52:32 +08:00
- [代码仓库组织](#%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E7%BB%84%E7%BB%87)
2022-03-10 12:34:20 +08:00
- [分支简介](#%E5%88%86%E6%94%AF%E7%AE%80%E4%BB%8B)
2022-03-09 13:52:32 +08:00
- [分支管理](#%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86)
2022-03-10 12:34:20 +08:00
- [跨工程分支管理](#%E8%B7%A8%E5%B7%A5%E7%A8%8B%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86)
2022-03-09 13:52:32 +08:00
- [分支负责人职责](#%E5%88%86%E6%94%AF%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3)
- [开发人员管理](#%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86)
2022-02-21 15:02:21 +08:00
- [二、 版本发布管理](#%E4%BA%8C-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E7%AE%A1%E7%90%86)
2022-03-09 13:52:32 +08:00
- [版本发布工具](#%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E5%B7%A5%E5%85%B7)
- [版本发布时间](#%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E6%97%B6%E9%97%B4)
- [发布流程管理](#%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E7%AE%A1%E7%90%86)
- [升级负责人职责](#%E5%8D%87%E7%BA%A7%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3)
- [开发人员管理](#%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86-1)
- [三、 代码分支与版本发布流程图](#%E4%B8%89-%E4%BB%A3%E7%A0%81%E5%88%86%E6%94%AF%E4%B8%8E%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E5%9B%BE)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2022-02-21 15:02:21 +08:00
## 一、 代码管理
2022-03-09 13:52:32 +08:00
### 代码仓库组织
建立Git组织团队名为`fsrl`,专门托管佛山许可登记系统的项目代码,并把开发人员权限统一管理起来。
2022-02-21 15:02:21 +08:00
**组织地址:** http://47.107.61.133:3000/fsrl
**仓库列表**
| 工程名 | 主题 |
| ----------------- | ---------------- |
| fsrl-org | 系统组织架构系统 |
| fsrl-scr | 商事登记2.0 |
| fsrl-server | 许可登记大后台 |
| fsrl-approve | 许可登记大前端 |
| fsrl-biz-speq-web | 质监网办PC前端 |
2022-03-10 12:34:20 +08:00
### 分支简介
2022-03-10 12:34:20 +08:00
工程的分支主要两种,一种是长期分支,一种是功能开发的主题分支。其中`master`,`test`是长期分支。
2022-03-10 12:34:20 +08:00
**master分支**
2022-03-09 13:52:32 +08:00
master分支始终代表生产环境的状态不能直接在上面提交代码。并大版本的发布应该进行打标签Tag存储正式发布的历史。
2022-03-10 12:34:20 +08:00
**test分支**
2022-03-09 13:52:32 +08:00
test 分支作为功能的预发布集成分支包含所有的代码提交记录。test 分支代表针对下一版本的最新交付的代码。开发人员从 test 分支创建新分支,并开发新功能。功能开发完毕后,将对其进行测试,与 test 分支合并,在合并了其他功能分支的情况下使用 test 分支的代码进行测试,然后与 master 分支合并。
**开发分支**
2022-03-10 12:34:20 +08:00
根据系统功能需求划分,创建对应的开发分支,负责存储相应的开发功能代码。
2022-03-09 13:52:32 +08:00
2022-03-10 12:34:20 +08:00
### 分支管理
2022-03-09 13:52:32 +08:00
2022-03-10 12:34:20 +08:00
1. master分支上保留完全稳定的代码不允许直接push代码
2. master分支只能从test分支合并push
3. 开发分支创建基于master拉取创建并且命名采用英文定义
4. 开发分支删除,当功能正式上线稳定一定的周期,并取得项目经理允许,即可删除分支。
5. 工程代码与分支需要严格规范管理起来,划分清楚工程与分支的边界
6. 设立开发分支代码管理负责人,负责日常合并、与其他开发模块代码协同等操作
2022-03-09 13:52:32 +08:00
2022-03-10 12:34:20 +08:00
### 跨工程分支管理
所谓的跨工程分支,意义上是同一个事项或功能开发,并涉及多个工程的分支管理。
1. 同属一个功能开发,要统一相同的分支命名
2. 分支拥有一致生命周期
例如:
2022-03-10 12:34:20 +08:00
| 功能模块 | 涉及工程 | 分支名称 |
| -------- | ----------------------------------------------------------- | -------- |
| 一照通行 | `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 |
2022-03-09 13:52:32 +08:00
### 分支负责人职责
2022-03-09 13:52:32 +08:00
1. 每天负责合并master主线代码到开发分支上
2022-02-23 21:58:43 +08:00
2. 上线发版需要经过测试环境测试主动把代码合并test分支上
2022-03-09 13:52:32 +08:00
3. 发版需要告知升级负责人,本次升级涉及那些工程以及说明,要通过文本方式告知留底
2022-03-09 13:52:32 +08:00
### 开发人员管理
2022-03-09 13:52:32 +08:00
1. 编写代码时,要在正确的分支下开发,特别是负责多个模块开发人员,禁止代码串门提交不相关分支
2. 每天来了先拉取同步远程仓库的代码并在下班或定期提交代码到Git仓库禁止攒着代码放大招
3. 禁止个人独立创建开发分支,要经过负责人同意
5. 开发规范可参考: [技术规范](http://47.107.61.133:3000/chinaweal/public/src/branch/master/技术规范)
2022-02-21 15:02:21 +08:00
## 二、 版本发布管理
2022-03-09 13:52:32 +08:00
### 版本发布工具
2022-02-28 10:46:22 +08:00
版本系统主要功能有,升级补丁,退回版本,补丁文件防篡检验。改生产环境发布版本,需要通过版本管理系统工具发布,禁止私自手动拷贝替换操作。
**版本打包服务器**172.22.80.91:22
**控制端访问地址**http://172.22.80.91:8086/incre/web/#/control/app
**佛山客户端访问地址**http://19.130.241.146:9888/incre/web#/client/project
**顺德客户端访问地址**http://19.202.179.137:9888/incre/web#/client/project
2022-03-09 13:52:32 +08:00
### 版本发布时间
2022-02-22 18:59:05 +08:00
系统升级要按照制定的时间执行,各模块的负责人要提前把代码功能测试好并提交,并告知升级负责人。逾期得等到下次升级,紧急情况下,可以向项目经理申请,通过方可以执行升级。
2022-03-09 13:52:32 +08:00
| 环境 | 升级时间 |
| -------- | ---------------- |
| 生产环境 | 周四19点 |
| 测试环境 | 获得准许即可升级 |
2022-02-22 18:59:05 +08:00
2022-03-09 13:52:32 +08:00
### 发布流程管理
2022-02-23 21:58:43 +08:00
1. 每次发布版本要经过测试环境验证流程测试环境test > 正式环境master
2. 分支合并由分支负责人合并到test测试环境测试没有问题再由升级负责人合并到主线master上打包发布正式环境
3. 测试环境发布版本,可以由分支负责人来负责打包升级
4. 生产环境发布版本,由升级负责人打包升级,并且只能使用版本打包服务器打包
2022-02-24 16:09:04 +08:00
5. 生产环境升级与回退只能使用版本管理系统操作
2022-03-09 13:52:32 +08:00
### 升级负责人职责
2022-02-23 21:58:43 +08:00
1. 合并分支test至master主线
2. 生产环境版本系统发布升级
2022-02-24 16:09:04 +08:00
3. 系统回退版本的操作
2022-03-09 13:52:32 +08:00
### 开发人员管理
1. 每次升级的代码,编写开发人员,需要保持在线状态
2. 修改了工程的静态配置文件,需告知分支负责人
3. 变更了库表字段,需告知分支负责人收集转交给数据库负责人
2022-03-09 13:52:32 +08:00
## 三、 代码分支与版本发布流程图
2022-02-21 14:44:25 +08:00
<img src="../img/佛山许可登记代码与版本发布管理规范.png" style="width:100%"/>