首页/开发/CI/CD 与发布速查/质量门禁基础:让流水线替团队把关
质量门禁与回滚51 条

质量门禁基础:让流水线替团队把关

在流水线的关键节点设置必须通过的检查(测试、扫描、依赖与评审),未通过就中止后续阶段,把问题拦在发布之前。

CI/CD 与发布速查开发更新于 2026-10-13

质量门禁是什么

在流水线关键节点设置必须通过的检查(测试、扫描、依赖与评审),未通过就中止后续阶段,把问题拦在发布之前。常见位置:合并前、制品晋级前、生产发布前。判定依据是测试结果、扫描报告与评审状态;失败行为是阻断流水线并通知责任人。核心原则:门禁的目标是降低变更风险,不是增加流程数量;每条门禁都应写清失败后的处理人与时限,否则门禁会退化成所有人的背景噪音。

基本信息

作用在阶段之间设置通行条件
常见位置合并前、制品晋级前、生产发布前
判定依据测试结果、扫描报告、评审状态
失败行为阻断流水线并通知责任人
设计原则每条门禁有明确处理人与时限

典型使用场景

  • 合并门:主干保护要求测试与评审通过才允许合并。
  • 晋级门:制品从预发晋级生产前核对验证证据。
  • 安全门:高危漏洞与密钥泄露检出即拦截。
  • 覆盖率门:核心模块覆盖率低于阈值不放行。
  • 人工门:生产发布前的审批与变更单核对。
  • 门禁复盘:定期统计拦截与误报情况,不合适的阈值要调整而不是无视。

GitLab 串联检查后发布

GitLab 串联检查后发布
deploy-prod:
  stage: deploy
  script: ./deploy.sh
  needs: ["unit-test", "security-scan"]   # 检查未完成不进入发布
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: manual
门禁的目标是降低变更风险,不是增加流程数量;每条门禁都应写清失败后的处理人与时限。
全部门禁都堆在发布前会让修复成本放大:能在合入前拦的问题不要留到发布前,反馈越早越便宜。
给例外留明路:明确紧急修复通道与补偿动作,避免团队在压力下悄悄绕过整套门禁。

易错点

  • 门禁全部堆在发布前:反馈太晚,修复成本被放大,且发布当天的修复窗口最紧张。
  • 只设置门禁不指定负责人:失败后无人处理,流水线长期红着,警报失效。
  • 允许失败滥用:把门禁作业配置成允许失败,等于没有门禁。
  • 门禁阈值与基线脱节:长期全红或全绿,团队学会无视结果,门禁名存实亡。
  • 没有例外通道:紧急修复被迫绕过整套流程,反而制造更大风险和更差记录。

数据来源与参考

  • GitLab Docs《CI/CD pipelines》
  • DORA《Accelerate State of DevOps Report》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌