日常迭代开发流程

创建日常迭代版本

迭代开始前,由SM在【分支管理】的“迭代版本”模块,点击新建日常版本,创建新的日常迭代版本。日常迭代版本号需要符合三位版本号规则,如v1.0.2。 日常版本新建后,SM需要点击版本记录行的开始迭代按钮,让日常版本进入开发中状态,此时系统会对当前产品下的所有git项目仓库,拉取master分支代码初始化T1、R1代码。

新建特性

点击日常迭代版本记录行的特性按钮,进入特性列表。

由SM或开发人员,点击新建特性,创建迭代版本的特性。

进入新建特性界面,录入特性基本信息。

  • “特性名称”与分支名称对应,仅表示特性的描述信息,命名达到概述特性的效果即可。
  • “分支名称”在特性开始开发后,会自动在gitlab所选关联项目仓库中创建以分支名命名的代码分支,故建议录入英文名。
  • “关联需求/缺陷”支持选择与手工录入两种模式,通过“产品管理”模块对产品设置需求源类型完成。
  • “关联项目”则选择当前特性要调整代码的相关仓库,保存后已选择的仓库不能取消选择,只能追加选择仓库。

新建特性后,由SM或开发人员点击特性记录行的“开始开发”按钮,特性进入“开发中”状态,此时系统自动拉取master代码去gitlab中创建对应特性分支。

特性提测

特性进入开发中状态后,开发人员在本地进行编码,编码完成后,将本地代码push到远端特性分支,点击特性分支记录行的提测按钮完成特性提测,此时系统会发送企业微信提测通知给特性测试人员。可通过“批量分配测试人员”对特性设置测试人员,未设置则发送给产品团队下的所有测试人员。

特性测试阶段

特性接测

测试人员收到开发人员提测通知后,可选择是否要接测对应特性,如接测,则点击特性记录行的特性合T1按钮,进行特性代码合并操作。

代码合并成功后,点击构建T1按钮进行测试构建。

进入测试构建界面,按照步骤依次选择sql文件、需构建的仓库,点击构建则会自动触发测试构建,构建实时日志可直接点击“构建管理”模块查看;也可通过点击特性记录行的查看日志按钮,在查看日志界面中通过点击“构建详情”自动跳转到构建管理模块查看。构建时所有选择的仓库均构建结束后,会发送企业微信通知给对应开发和测试人员。

构建的具体步骤依赖于对应仓库的流水线模板步骤,通常会包含如clone->sonar->doker_build->deploy这些步骤,各项目团队可根据自身情况定义流水线步骤(目前未开放可视化定义界面,需要找云擎团队协助自定义)。

特性测试不通过

测试构建成功后,测试人员可以开始对特性进行测试了,测试过程如果开发质量太差,低级问题多,或者主流程未跑通,测试人员可以点击测试不通过按钮,将特性打回,此时特性状态为“测试不通过”,开发调整代码后再重新提测。

特性测试发现BUG

测试过程中发现BUG,开发人员可以随时进行修复,修复后可随时提测。

特性测试通过

当特性所有功能测试完成,相关BUG修复且已验证通过,则可点击测试通过按钮,将特性置为“已冻结”状态,此时gitlab中对应的特性分支将置为受保护状态,开发无法再次提交代码到此特性分支。

预发布测试阶段

特性预发布

特性测试通过后,可以先对此特性单独预发布,也可以待所有需要发布的特性均测试通过后,再一起进行预发布。点击版本列表记录行的特性合R1按钮,将特性代码合并到R1。

代码合并到R1成功后,点击构建R1按钮进行预发布构建。

预发布测试发现BUG

预发布构建成功后,测试人员开始进行预发布测试,测试过程中发现BUG,需要点击特性列表对应特性的解冻按钮,此时系统会将gitlab对应特性分支取消受保护状态,开发人员修改代码后重新走提测->特性接测->测试通过->特性预发布流程。

预发布测试时发现的BUG,修复影响范围太大,经评估后需要取消相关特性的发布,可点击版本列表的回滚按钮,将R1分支代码回滚为master代码,回滚后重新选择特性进行特性预发布。注:回滚操作仅针对代码,数据库无法回滚,此时需要开发提供反sql实现数据库回滚操作。

预发布测试通过

当预发布测试完成,且所有需要修复的BUG已修复并已验证,可点击版本列表的预发布通过按钮,将版本更新为“预发布通过”状态。预发布通过但是未发布,此时如果发现BUG需要修复,可通过取消预发布操作,按照预发布测试发现BUG的流程进行处理。

版本发布

预发布测试通过,在确认相关配置、版本sql均无误后,可点击版本列表的发布按钮,对版本进行发布,发布后版本无法撤回。发布操作会将R1代码合并到master分支,再对master分支打tag。发布后在生产环境进行回归测试发现的问题,如果明确必须要马上解决的,则需要通过热修复版本进行修复。

特性流转

日常迭代版本中,当特性不需要在当前版本中发布时,可将其流转到后续日常迭代版本中,流转操作在版本发布前、后均可操作,流转操作相当于将当前特性移动到流转后的日常迭代版本中。

results matching ""

    No results matching ""