文档

质量门控

策略会决定哪些内容允许通过,以及质量关卡会在何处拦截任务。

一个质量门是工作必须通过的校验,才能继续推进。质量门的作用就是让“达到可发布标准”不再是主观判断,而是系统每次都统一执行的规则。

阻塞型与提示型

每个质量门都属于其中一种,这种区分正是整个设计的核心:

  • 阻塞型——校验不通过时任务会暂停。只有校验通过,或经人工干预后,工作才能继续推进。
  • 提示型——校验不通过时会被记录为发现项并附加到拉取请求中,但任务仍会继续执行。

先启用提示型质量门。观察一两周内质量门在实际工作中触发的情况,再把符合条件的升级为阻塞型。如果刚启用就设置为阻塞型且未经调优,往往只会迫使人员想办法绕过它。

阻塞性关卡

  1. 覆盖率低于 80%未通过
  2. 任务暂停

    该任务将作为返工处理,而非生成您只会拒绝的 pull request。

  3. 有权限的人员可覆盖此限制,覆盖操作会记录相关人员、时间及原因。

提示性关卡

  1. 覆盖率低于 80%未通过
  2. 记录相关发现

    任务会继续推进至审核环节。

  3. 该发现会附在 pull request 中供您评估。
检测结果相同。具体处理方式由策略决定:阻断型检测会停止任务,提示型检测仅记录结果并允许继续工作。

质量门可校验的内容

质量门位于校验阶段之上,可覆盖以下内容:

  • 你自己的测试套件运行通过
  • 代码覆盖率阈值
  • 代码规范检查与静态分析
  • 安全扫描,配置在安全
  • 针对正在运行的预览环境的浏览器测试
  • 附加在 pull request 上的外部提供商提供的校验证据

最有价值的质量门几乎总是你现有的测试套件,因为它已经体现了团队认为重要的标准。

质量门中断工作的时机

质量门在校验阶段运行,即开发代理完成任务后、审核之前。阻塞型校验不通过时,任务会被退回重新处理,而不会生成你最终会拒绝的 pull request。

这样的顺序是有意为之:在流程内部失败的成本远低于在界面上暴露出来。

策略

质量门被归类到策略中,这才是你实际关联到项目上的内容。策略是一组命名的质量门及其阻塞/提示设置,因此你可以为生产服务设定一套标准策略,为内部工具采用更宽松的策略。

策略是版本化的。你发布变更后,如果新质量门过于严格,还可以回滚到之前的版本。

人工干预

具备权限的人员可以干预阻塞型质量门。干预行为会被记录——包括操作者、时间及对应任务。

记录本身才是关键。无法干预的质量门会被人员绕过;任何人都能随意干预的质量门则算不上真正的质量门。有迹可循的干预既实用又可追溯。

质量门无法做到的事

质量门仅校验属性。它们不会评判工作是否解决了正确的问题——这正是验收标准的作用,规格说明以及审核环节要完成的工作。

即使通过了所有质量门,更改仍可能是错误的。