如何使用本地代理在 Azure DevOps Server 2020 中的给定构建代理上对 YAML 构建进行排队?

问题描述

给定:

  • 数十个公关构建代理
  • 有时公关构建会在某些代理上流氓

我们的解决方案 - 在该代理上排队一个完整的构建,而不是默认的增量

现在我们将经典 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 (将#修改为@)