如何通过TeamCity API实现当前构建完成后停止构建代理实例?
TeamCity API实现“当前构建后停止实例”操作的方法
先明确结论:这个操作和删除代理接口完全不是一回事。删除代理是直接把该代理从TeamCity系统中移除,后续需重新注册才能使用;而“当前构建后停止实例”只是让代理完成正在运行的构建任务后停止服务,代理实体仍然保留,之后可手动重启恢复。
具体实现步骤如下:
- 获取目标代理ID:调用
GET /app/rest/agents接口获取所有代理列表,从返回结果中定位到目标代理的id(也可通过name字段匹配)。 - 发送停止请求:向
POST /app/rest/agents/id:{agentId}/stop接口发起POST请求,请求体传入{"afterCurrentBuild": true},同时需将请求头的Content-Type设置为application/json。 - 验证操作状态:执行请求后,可通过
GET /app/rest/agents/id:{agentId}查看代理的status字段,此时会显示为stoppingAfterCurrentBuild,待当前构建完成后,状态会更新为stopped。
额外注意事项:
- 执行该操作需要具备Agent Manager级别的权限。
- 如果是云托管类型的代理(如AWS、GCP实例),部分配置下该停止操作会触发实例关机,但这属于云代理的附加行为,核心API操作本质是停止TeamCity代理服务,而非删除代理。
内容的提问来源于stack exchange,提问作者Laurent Michel
相关产品推荐
相关产品推荐

