【问题标题】:How to queue a YAML build at the given build agent in Azure DevOps Server 2020 with on-prem agents?如何使用本地代理在 Azure DevOps Server 2020 中的给定构建代理处对 YAML 构建进行排队?
【发布时间】:2021-08-08 07:18:24
【问题描述】:

给定:

  • 数十个 PR 构建代理
  • 有时 PR 构建在某些代理上会出现流氓行为

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

现在我们将经典 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

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

【问题讨论】:

    标签: azure-devops azure-devops-server-2020


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 2021-01-03
      • 2020-12-21
      • 2021-11-18
      • 1970-01-01
      • 2020-03-16
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多