如何在TeamCity Build Chain中配置Manual Approval手动审批流程
TeamCity 构建链QA手动审批实现方案
TeamCity原生支持该需求,无需第三方插件,可通过以下三种方案实现,按易用性排序如下:
方案1:手动触发依赖配置(最常用,推荐)
将需要审批的节点前后拆分为三个独立的构建配置,按顺序组成构建链:上游构建(打包/测试)→ 审批占位配置 → 下游构建(升级/部署)
- 配置审批占位配置规则:
- 移除所有自动触发规则,仅保留手动触发权限
- 权限配置中仅开放触发权限给QA角色,其他人员无该配置的触发权限
- 添加上游构建的快照依赖,仅允许在上游构建成功后触发该审批配置,避免无效审批
- 配置通知规则:
- 在上游构建的成功通知规则中,添加QA组的通知接收权限,通知方式可选择邮件、企业IM webhook等
- 通知模板中嵌入审批占位配置的触发页面地址,QA收到通知后点击地址登录,手动触发审批配置即视为审批通过,构建链会自动执行后续的升级步骤
- 可选留痕配置:在审批占位配置中添加单步命令行执行步骤,自动记录审批信息,命令参考:
输出内容会自动存入构建日志作为审批留痕。echo "审批已通过,审批人:%teamcity.build.triggeredBy.username%,审批时间:%system.build.start.time%,关联上游构建ID:%dep.<上游构建配置ID>.build.id%"
方案2:构建链暂停恢复方案
无需拆分原有构建链,通过REST API控制构建链执行状态实现审批:
- 在前序构建的最后一步添加命令行步骤,调用REST API暂停当前构建链的后续执行,命令参考:
curl -u <TeamCity账号>:<访问Token> -X PUT "http://<你的TeamCity服务地址>/app/rest/builds/id:%teamcity.build.id%/pause" -H "Content-Type: text/plain" -d "true" - 同步在该步骤中配置通知逻辑,给QA发送包含构建链恢复入口的通知
- QA校验通过后,手动恢复构建链即可自动执行后续的升级步骤,驳回则直接终止当前构建即可
方案3:自定义轮询审批(适合多人审批等复杂场景)
如果需要多人会签、审批理由填写等复杂逻辑,可以通过自定义脚本实现:
- 在需要审批的节点前添加命令行步骤,循环读取指定的审批状态标记
- QA通过内部表单、聊天机器人等渠道提交审批结果后,结果会同步写入该构建的参数或指定存储位置
- 脚本检测到审批通过标记后自动继续执行后续步骤,检测到驳回标记则直接标记构建失败终止流程
提示:TeamCity没有单独命名的「审批」功能入口,上述方案均为原生功能组合实现,可覆盖绝大多数企业级审批场景。
内容的提问来源于stack exchange,提问作者Red Bottle
相关产品推荐
相关产品推荐

