Git源代码管理方案

  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.mzph.cn/news/2280.shtml

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

相关文章

Ceph 分布式存储之应用

一、创建 CephFS 文件系统 MDS 接口 1、服务端操作 1&#xff09;在管理节点创建 mds 服务 [rootadmin ceph]# cd /etc/ceph [rootadmin ceph]# ceph-deploy mds create node01 node02 node03 [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.c…

.Net5 mvc项目UseBrowserLink插件功能失效的原因

前期基于.Net Framework创建的Web项目&#xff0c;使用了BrowserLink插件协助前端开发&#xff0c;功能一直都比较稳定&#xff0c;后来项目迁到.Net5 &#xff0c;发现BrowserLink 已经失去了从浏览器定位到项目源代码的功能&#xff0c;希望在后面的版本还能继续支持此版本&a…

国内流行的数据可视化软件工具

在信息爆炸的时代&#xff0c;越来越多的数据堆积如山。但是&#xff0c;这些密集的数据没有重点且可读性较差。因此&#xff0c;我们需要数据可视化来帮助数据易于理解和接受。相比之下&#xff0c;可视化更直观、更有意义&#xff0c;使用适当的数据可视化工具来可视化数据非…

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

基于FT232HL的USB2.0转ARINC429板卡

基于FT232HL的USB2.0转ARINC429板卡 1 概述 《USB2.0转ARINC429板卡》采用底板子板&#xff0c;层叠安装的结构&#xff1b;使用同样的底板&#xff0c;变换不同功能的子板实现不同的功能版本。 a) 降低硬件设计复杂度&#xff1a;新板卡设计只需要设计子板&#xff0c;子板的…

MySQL中这14个小玩意,让人眼前一亮!!!

前言 我最近几年用MYSQL数据库挺多的&#xff0c;发现了一些非常有用的小玩意&#xff0c;今天拿出来分享到大家&#xff0c;希望对你会有所帮助。 1.group_concat 在我们平常的工作中&#xff0c;使用group by进行分组的场景&#xff0c;是非常多的。 比如想统计出用户表中…

《动手学深度学习》(pytorch版本)中`d2lzh_pytorch`包问题

《动手学深度学习》&#xff08;pytorch版本&#xff09;中d2lzh_pytorch包问题

【深度学习】张量的广播专题

一、说明 张量广播&#xff08;tensor broadcasting&#xff09;是一种将低维张量自动转化为高维张量的技术&#xff0c;使得张量之间可以进行基于元素的运算&#xff08;如加、减、乘等&#xff09;。在进行张量广播时&#xff0c;会将维度数较少的张量沿着长度为1的轴进行复制…

YOLOv5图像和视频对象生成边界框的目标检测实践(GPU版本PyTorch错误处理)

识别图像和视频里面的对象&#xff0c;在计算机视觉中是一个很重要的应用&#xff0c;比如无人驾驶&#xff0c;这个就需要实时的检测到周边环境的各种对象&#xff0c;并及时做出处理。目标检测在以往的文章中有重点讲解过几种&#xff0c;其中Faster R-CNN的源码解读&#xf…

7.kafka+ELK连接

文章目录 kafkaELK连接部署Kafkakafka操作命令kafka架构深入FilebeatKafkaELK连接 kafkaELK连接 部署Kafka ###关闭防火墙systemctl stop firewalld systemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabled###下载安装包官方下载地址&#xff1a;ht…

Vue自定义指令

需求1&#xff1a;定义一个v-big指令&#xff0c;和v-text功能类似&#xff0c;但会把绑定的数值放大10倍。 需求2&#xff1a;定义一个v-fbind指令&#xff0c;和v-bind功能类似&#xff0c;但可以让其所绑定的input元素默认获取焦点。 自定义指令函数式v-big&#xff1a; &l…

2023最新版本Activiti7系列-事件篇

事件篇 事件&#xff08;event&#xff09;通常用于为流程生命周期中发生的事情建模。事件总是图形化为圆圈。在BPMN 2.0中&#xff0c;有两种主要的事件分类&#xff1a;*捕获&#xff08;catching&#xff09;与抛出&#xff08;throwing&#xff09;*事件。 捕获: 当流程执…

文件共享服务器

文章目录 一、共享服务器概述二、创建共享三、访问共享四、创建隐藏的共享五、访问隐藏共享的方法六、共享相关命令七、屏蔽系统隐藏共享自动产生1. 打开注册表2. 定位共享注册表位置 八、查看本地网络连接状态&#xff08;查看开放端口&#xff09;九、关闭445服务 一、共享服…

List迭代器是如何实现的

我们知道当我们使用vector的迭代器时,它的操作可以让它指向下一个位置,解引用操作就可以找到这个位置的值,因为vector底层时用的一个顺序表,可以支持随机访问。对比list来说vector底层的迭代器是十分的简便可观的。虽然我们使用list的迭代器外观上和vector是大同小异的&#xf…

uniapp离线引入阿里巴巴图标

阿里巴巴图标地址 1.添加图标到购物车 2.点击购物车进入项目 3.下载到本地 4.解压后文件目录 5.放入项目目录中(比如说我经常放在common或者static下icon中) 6.在main.ts或者main.js中引入&#xff08;注意路径&#xff0c;用相对的也行&#xff09; import /static/iconfon…

超细,设计一个“完美“的测试用例,用户登录模块实例...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 好的测试用例一定…

java项目之足球赛会管理系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的足球赛会管理系统。技术交流和部署相关看文章末尾&#xff01; 项目地址&#xff1a; https://download.csdn.net/download/sinat_26552841…

C#安装.Net平台科学计算库Math.Net Numerics

工作的时候需要使用到C#的Math.Net库来进行计算。 Math.Net库涵盖的主题包括特殊函数&#xff0c;线性代数&#xff0c;概率模型&#xff0c;随机数&#xff0c;插值&#xff0c;积分&#xff0c;回归&#xff0c;优化问题等。 这里记录一下&#xff0c;安装Math.Net库的过程…

Hugging Face开源库accelerate详解

官网&#xff1a;https://huggingface.co/docs/accelerate/package_reference/accelerator Accelerate使用步骤 初始化accelerate对象accelerator Accelerator()调用prepare方法对model、dataloader、optimizer、lr_schedluer进行预处理删除掉代码中关于gpu的操作&#xff0…