构建 Rest API 忽略了“需求”

问题描述 投票:0回答:1

我正在尝试按照本文档对构建进行排队:https://learn.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-7.0

我想使用特定代理对构建进行排队。 JSON 正文正确通过,但“需求”未合并,并选择池中最可用的代理。

$body = @{
    ...
    ...
    "demands" = @(@{
       "value" = "Agent.Name -equals agent.01"
    })
}

我也尝试过:

    "demands" = @(@{
       "name" = "Agent.Name"
       "value" = "agent.01"
    })

    "demands" = @(
       "Agent.Name -equals agent.01"
    })

如有任何帮助,我们将不胜感激!

powershell azure-devops-rest-api
1个回答
0
投票

我认为需求已经被打破,至少对于本地服务器 2020 更新 1.2 来说是这样。在我用头撞墙的时间比我愿意承认的时间长之后,我想出了一个解决方法:向管道 YAML 添加一个参数,并设置池需求:基于该参数的值。

管道 YAML:

parameters:
- name: buildAgent

stages:
- stage: StageName
  jobs:
  - job: JobName
    pool: 
      name: Default
      demands: Agent.Name -equals ${{ parameters.buildAgent }}
    steps: ...

API请求体:

{
   "definition": {"id": "123"},
   "templateParameters": {"buildAgent":"*agentnamegoeshere*"}
}

编辑添加:理论上,池(有需求)可以进入舞台或管道,我的池恰好在工作中,这就是我测试的方式。

© www.soinside.com 2019 - 2024. All rights reserved.