Git源代码管理方案

news2024/11/25 13:37:29
  1. 背景

现阶段的Git源代码管理上有一些漏洞,导致在每次上线发布的时间长、出问题,对整体产品的进度有一定的影响。

  1. 作用

新的Git源代码管理方案有以下作用:

  1. 多功能并行开发时,测试人员可以根据需求任务分配测试自己的功能,环境互不干扰(需要提供多环境),也可以集成全业务流程测试;
  2. 功能并且支持拆分上线;
  3. 所有代码冲突必须在版本环境解决
  4. 原则上V1环境打包好的版本测试通过直接推给beta环境测试,beta环境测试通过直接推到生产环境(灰度环境),如果有拆分上线,再由各功能分支合并到版本环境从新打tag提测。
  1. 权限
  1. 版本环境开放给开发人员(包括组长、项目经理);
  2. master环境只开放给源代码管理员(业务线技术负责人)。
  1. 角色

本流程涉及到的角色有以下:

  1. 开发人员:主要负责功能开发,发送功能测试合代码请求,填写封版内容,提交脚本,解决合并代码冲突,协助解决部署问题;
  2. 组长(项目经理):主要负责创建测试封版请求(运维管理平台),督促开发人员合并代码,检查封版内容是否准确;
  3. 测试人员:主要负责功能、性能测试,根据开发人员提供的版本tag打包测试,测试通过后通知运维tag分支名称与测试通过的程序包。
  4. 运维人员:主要负责生产程序部署(根据测试通过的程序包),master打制品库,生产部署过程中出现问题的程序回滚。
  5. 源代码管理员:主要负责master源代码合并(根据测试通过的版本分支tag),打master的release。
  1. 流程
    1. 功能分支
  1. 开发人员从master获取生成功能分支;
  2. 功能分支线命名规范:服务名称+“-”+版本号。
    1. 版本提测(图1)
  3. 项目经理(委托人)从master获取生成V1版本分支,分支线命名规范:服务名称+“-”+版本号;
  4. 开发人员把需要提测功能分支发送合并代码请求通知组长(委托人)组长(委托人)合并代码生成版本tag并通知测试人员;
  5. 项目经理(委托人)创建测试封版请求运维管理平台,由各个开发人员填写内容;
  6. 开发人员把需要的脚本提交到运维管理平台版封表格,格式以SQL审计规范》https://archery.bndxqc.com/dbaprinciples/;
  7. 测试人员基于开发人员提供的tag编译打包测试;
  8. 测试完,测试人员给出最终版本tag;
  9. tag命名规范:服务名称+“-”+版本号+“-”+时间(yyyymmddhhmmss);

如:bonade-officialcar-oil-V4.2.0-20210324121145

  1. Fix bug重复上述内容,注意:如果在测试期间,生产有发生bug修复后,需要从新拉取master与现有的版本内容合一次再打tag 。
    1. 体验上线(图1)
  1. 如果测试通过的版本tag是整体都上体验,就直接拿版本tag打的包推到体验环境,以下步骤不需要执行;
  2. 如果测试通过的版本tag是部分上体验,需要在版本环境从新构建,打tag再上测试环境->体验环境;
  3. Fix bug重复上述内容。

    1. 生产上线(图1)
  1. 体验测试通过直接推送到生产线(包括灰度),原则上测试与体验是同一个包;
  2. 生产环境通过后,由源代码管理员最终通过的版本tag对应的源代码合到master,如果发现冲突项目经理安排开发人员解决;
  3. 生产环境通过后,由源代码管理员打一个生产版本tag(v1.0.0-release)。

    1. Fix Bug上线(图2)
  1. 开发人员从master拉取代码生成功能分支进行修复;
  2. 重复<版本提测>流程。

图1

 

图2

 

图3

 

  1. 配置规范
    1. 前端
  1. 由于存在多个环境(开发,测试,体验,生产),而又使用同一个tag发布代码,故前端代码中不应该写死接口请求域名(如写死BaseUrl:薪公务用车);
  2. 若项目中有写死跨子域名的请求,则需要在代码中判断当前环境,再请求对应环境的域名;

    1. 后端
  1. 配置文件统一放在nacos配置中心;
  2. 启动配置中心的环境,通过启动脚本注入,需要运维配合实施;
  3. 前端需要用到的域名,由运维统一配置然后提供给开发人员(包含APP、前端、后端);
  4. 前端用到的路由,如果是再网关层配置,如gateway,zuul配置的由后端人员配置,如果是nginx的由后端人员提供配置给运维协助配置。
    1. 运维
  1. 域名,nginx,启动脚本由运维人员配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis-Plus条件查询问题解决

问题描述 系统中有用户注册的功能&#xff0c;但是会出现重复注册的现象&#xff0c;代码中有做过重复校验&#xff0c;但是没有生效。 问题解决 首先排查数据生成时间点不同&#xff0c;相差时间有长有短&#xff0c;不是用户同时多次点击的原因&#xff0c;应该是用户这边…

js判断两个数组是增加还是删除

JS判断两个数组的数据&#xff0c;增加的数据以及删除的数据。 // 第一个参数是新数组&#xff0c;第二个参数是旧数 const compareArrays function(arr1, arr2 ) {let remove []let add []// 旧数据循环for (let i 0; i < arr2.length; i) {let item arr2[i];if (arr…

EvilBox---One靶机复盘

EvilBox—One靶机复盘 这个靶场学会了原来id_rsa的私钥可以直接爆破&#xff0c;利用ssh2john工具提取私钥&#xff0c;然后john直接爆破就可以了。 靶场下载地址&#xff1a;https://download.vulnhub.com/evilbox/EvilBox—One.ova 这个靶场是直接给ip地址的我们就不用扫描…

Spring Boot使用httpcomponents实现http请求

基于org.apache.httpcomponents的httpclient实现&#xff0c;其它的实现方式都行。 1. pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/…

快速实现主从表编辑,实现多个不定长从表

目录 1 前言 2 不定长表、定长表的定义 3 根据已有的电子表格制作数据库表并导入数据 3.1 订单 3.2 订单明细 3.3 客户 4 配置主从关联关系 5 继续增加一个主从关联关系 6 测试一下运行结果 7 一段代码用于实现在panel中画出字段列表面板 1 前言 实际工作中&#xff…

扑克牌检测Y8S

采用YOLOV8训练&#xff0c;得到PT模型&#xff0c;然后直接转ONNX&#xff0c;使用OPENCV的DNN&#xff0c;不需要其他依赖&#xff0c;支持C/PYTHON 扑克牌检测Y8S

数据结构(王道)——线性表的存储结构之顺序表

线性表和顺序表的关系&#xff1a; 两种实现方式&#xff1a;静态分配、动态分配 总结&#xff1a;

Win7如何合并C盘与D盘?

电脑C盘不够用&#xff0c;需要把D盘的卷删除并合并到C盘中。 整体步骤&#xff1a; 1.右击此电脑-管理-磁盘管理。 2.假如要把D盘容量合并到C盘&#xff0c;右击D盘&#xff0c;选择删除卷&#xff0c;点击“是”。此时D盘数据会被清空&#xff0c;建议先备份数据。 3.删除…

消息队列MQ入门理解

功能特性: 物联网应用 物联网设备通过微消息队列(LMQ)连接云端,双向通信,数据传输;设备数据通过消息队列(MQ)连接计算引擎,分析数据或者源数据实时高效写入到 HiTSDB / HiStore / ODPS 等。 大规模缓存同步 在商业大促活动中,如“双11”大促,各个分会场会有琳琅…

基于输出调节的一致性编队控制

参考博客&#xff1a; https://blog.csdn.net/weixin_44346182/article/details/131747082 在输出调节的基础上&#xff0c;实现了输出一致性&#xff0c;而编队控制就是没有偏移量的状态一致性&#xff0c;恰好本题的C矩阵就是系统的第一阶的状态&#xff08;位置&#xff0…

spring boot security自定义权限检查

前言 鉴权主要分为身份认证和权限控制两部分&#xff1a; 身份认证&#xff1a;检查当前用户是否合法&#xff08;比如已登录&#xff09; 权限控制&#xff1a;检查当前用户是否有访问该资源的权限 本文主要给出一个示例&#xff0c;说明如何自定义权限控制。 因为一个完整的…

增长能力模型:最大限度地发挥增长团队的潜力

作为增长领导者&#xff0c;准确评估你的组织和团队成员是一项非常重要且耗时的工作。但是如果我们计划为未来的增长领导者创造一条职业道路&#xff0c;我们就需要一个流程来为整个团队提供客观的反馈&#xff0c;这就是增长能力模型的用武之地。 增长能力模型提供了一个框架&…

argc,argv

文章目录 argc 是argument count的缩写表示传入main函数中的参数个数&#xff0c;包括这个程序本身 argv 是 argument vector的缩写表示传入main函数中的参数列表&#xff0c;其中argv[0]:程序的名字(.exe) int main(int argc, char** argv) {std::cout << "argc:…

1、环境搭建

下载visual studio,社区版基本够用了,其他版本是收费的。 下载之后安装即可。 安装完成之后要求我们选择要使用的模块。这里我们勾选如图中圈起来的模块,并选择安装。因为我这边已经安装过,所以按钮变成了“关闭” 安装完毕后,重启。 重启完成之后,打开Visual studio。…

配置JDK_IDEA

配置JDK_IDEA 1.安装JDK配置环境变量1.1.安装JDK1.2.配置JDK环境变量 2.IDEA 1.安装JDK配置环境变量 1.1.安装JDK 链接: 下载JDK 1.2.配置JDK环境变量 2.IDEA 链接: IDEA官网 自行激活

分布式运用——ELK 企业级日志分析系统

分布式运用——ELK 企业级日志分析系统 一、ELK 简介1.ELK的主要组件2.可以添加的其它组件3.为什么要使用 ELK4.完整日志系统基本特征5.ELK 的工作原理&#xff1a; 二、ELK集群部署三、ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操作&#xff09;1&#xff…

扩散模型学习笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 前言 &#xff08;注&#xff1a;高斯分布前加乘以项改变其方差&#xff09; 深入浅出扩散模型系列&#xff1a;DDPM架构图解&#xff08;模型架构篇&#x…

【C/C++】类成员进阶——类中静态成员static

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

暑假第十一天打卡

离散&#xff1a; 今天主要学的是推理&#xff0c;感觉推理定理那一大堆公式就是假设箭头前是true&#xff0c;然后将双箭头改为单箭头&#xff0c;然后由此得到对应推理规则&#xff0c;横线上是“因为”&#xff0c;横线下是所以 推理的形式结构: (p → q) ∧ q → p 科研 …

Java编译运行程序(Windows环境)

1.运行条件&#xff1a;我们已经配好环境变量&#xff0c;且在需要编译的文件的目录下打开cmd&#xff1b;还没配好环境变量的同学可以参考&#xff08;链接最上面的推荐文章链接&#xff09;&#xff1a;http://t.csdn.cn/HPWWr 2.首先需编译目标编译的Java文件&#xff0c;…