问题描述
给定:
- 数十个公关构建代理
- 有时公关构建会在某些代理上流氓
我们的解决方案 - 在该代理上排队一个完整的构建,而不是默认的增量
现在我们将经典 PR 构建迁移到 YAML,突然间我们不再能够在给定代理上排队完整 PR 构建——GUI 中的需求消失了,REST API 也不起作用。
我们可以在 YAML 中指定需求这一事实并没有帮助 - 这些需求被硬编码到 YAML 中,似乎无法在排队时提供它们。
那么,我错过了什么?在 YAML 构建中,我们如何在排队时间提供需求?
编辑 1
我使用 Builds - Queue API。我没有传递代理队列信息,因为没有必要——它已经在构建定义中指定了。但是,我确实通过了要求 - Agent.Name =
它适用于经典构建,不适用于构建排队的 YAML 构建,但适用于池中的第一个可用代理,而不是需求中指定的代理。需求完全被忽视。就像我之前提到的 - YAML 构建 GUI 中也没有它。
编辑 2
这是 Fiddler 捕获的请求会话:
POST https://ourserver/tfs/DefaultCollection/SharpTop/_apis/build/builds?api-version=5.0 HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.610
Content-Type: application/json
Host: ourserver
Content-Length: 76
{"demands":["Agent.Name -equals MyAgentName"],"definition":{"id":7821}}
(我用 ourserver 替换了真实的服务器名称,用 MyAgentName 替换了代理名称)
响应没有错误,构建已排队,但不在正确的代理上。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)