0

鉴于:

  • 数十个 PR 构建代理
  • 有时 PR 构建在某些代理上会变得流氓

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

现在我们将经典 PR 构建迁移到 YAML,突然我们不再能够在给定代理上排队完整的 PR 构建 - 需求从 GUI 消失了,REST API 也不起作用。

我们可以在 YAML 中指定需求这一事实无济于事——这些需求被硬编码到 YAML 中,并且似乎无法在排队时提供它们。

那么,我错过了什么?我们如何在 YAML 构建中在排队时提供需求?

编辑 1

我使用构建 - 队列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}}

(我用我们的服务器替换了真实的服务器名称,用MyAgentName替换了代理名称)

响应没有错误,构建已排队,但不在正确的代理上。

4

1 回答 1

-1

您使用哪个 REST API 对 YAML 管道进行排队?

您可以尝试使用 API“ Builds - Queue ”。使用此 API,您可以指定代理池来运行管道。

于 2021-05-19T07:24:27.303 回答