SuperAPI AI 工具集

configuring-quality-gate

部署与运维

查看项目

更新于 10-15 14:28

技能介绍

用途

该技能用于在 DevOps Center 中创建质量门(Quality Gate),为其配置规则,并将质量门关联到流水线阶段的测试套件分配记录上。质量门用于在流水线阶段对测试结果施加约束,例如要求最低通过率、限制失败严重级别或要求所有关键测试通过。

前置条件

需先加载 checking-devops-prerequisites 技能,满足前置条件 1–4 以及前置条件 5(阶段)。需要准备以下信息:doce-org-alias、pipelineId、stageId,以及目标 DevopsTestSuiteStage 记录 Id。

所需输入

  • name:用户提供的质量门名称。
  • rules:规则列表,每项为 {type, threshold?},规则类型见下文。
  • doce-org-alias:在前置条件 1 中确定。
  • testSuiteStageId:目标 DevopsTestSuiteStage 记录 Id(前置条件 5)。

规则类型

  • PASS_PERCENTAGE:测试必须通过的最低百分比,阈值必填(0–100)。
  • SEVERITY:允许的失败最大严重级别,阈值必填(数值,例如 1–5)。
  • ESSENTIAL:所有关键测试必须通过,无需阈值。

强制影响预览

在执行任何命令之前,必须向用户展示以下预览并等待明确确认:

"Here's what this quality gate will enforce on <stageName>:

Rule: <type> — <description>

Threshold: <value>

Affected pipelines: <list>

Confirm to apply?"

在展示影响预览并获得明确确认之前,绝不能继续执行后续步骤。

确认门

只有在用户明确确认(例如 "yes"、"confirm"、"go ahead")后,才可继续执行以下步骤。如果用户拒绝或未确认,则停止,不执行任何命令。

步骤 1 — 创建质量门记录

sf api request rest \
  "/services/data/v67.0/connect/devopstesting/qualityGate" \
  --method POST \
  --body '{"name": "<gateName>"}' \
  --target-org <doce-org-alias>

从响应中提取 qualityGateId。

步骤 2 — 将每条规则创建为 sObject 记录

规则不能通过 Connect API 载荷传入,需直接创建为 DevopsQualityGateRule 记录。只创建用户请求的规则。ESSENTIAL 没有阈值。

sf data create record \
  --sobject DevopsQualityGateRule \
  --values "DevopsQualityGateId='<qualityGateId>' Rule='PASS_PERCENTAGE' Threshold=<value>" \
  --target-org <doce-org-alias> --json

sf data create record \
  --sobject DevopsQualityGateRule \
  --values "DevopsQualityGateId='<qualityGateId>' Rule='ESSENTIAL'" \
  --target-org <doce-org-alias> --json

sf data create record \
  --sobject DevopsQualityGateRule \
  --values "DevopsQualityGateId='<qualityGateId>' Rule='SEVERITY' Threshold=<value>" \
  --target-org <doce-org-alias> --json

步骤 3 — 将质量门关联到套件阶段

更新 DevopsTestSuiteStage 记录以关联新质量门:

sf data update record \
  --sobject DevopsTestSuiteStage \
  --record-id <testSuiteStageId> \
  --values "IsQualityGateEnabled=true DevopsQualityGateId='<qualityGateId>'" \
  --target-org <doce-org-alias> --json

成功时

向用户确认:

"Quality gate <gateName> created with <N> rule(s) and assigned to <suiteName> on <stageName>."

错误处理

绝不暴露原始 API 错误。使用以下响应:

  • 400:"The quality gate configuration is invalid. Check that all rule types and thresholds are correct."
  • 403:"You don't have permission to configure quality gates on this org."
  • 500:"A server error occurred. Try again in a few minutes."

相关技能

  • 在满足阈值后重新运行质量门,可使用 running-devops-test-suite(retrigger 模式)。
  • 分配或映射套件到阶段,可使用 managing-suite-assignments。

适用场景

适用于在 DevOps Center 流水线中为测试阶段设置质量约束,确保代码在进入下一阶段前满足通过率、严重级别或关键测试要求。

限制

需先完成前置条件并加载 checking-devops-prerequisites 技能;执行前必须获得用户明确确认;规则需单独创建为 sObject 记录,不能通过 Connect API 载荷传入。