我们在TFS中有多个代理程序池。有没有一种方法可以将默认代理设置为其中一个池? 当前,所有项目版本在创建版本时都具有默认代理。 而不是将默认代理显示为列表中的第一个代理,我们希望将差异代理作为默认代理。可能吗? 感谢任何帮助!
谢谢
答案 0 :(得分:1)
我们希望将diff代理设置为Default,而不是将Default代理显示为列表中的第一个代理。有可能吗?
恐怕没有现成的设置可以设置其他默认代理池。
在Web门户上,我们可以在“构建选项”选项卡中的默认代理队列选项中选择其他默认TFS代理池,并保存:
此设置已保存。当您对构建进行排队时,默认的代理池将是您在上面设置的代理:
当您下次将构建排队时,默认代理将是您之前设置的代理。
另一方面,我们可以添加一个与特定代理匹配的需求,例如:
Agent.Name -equals AgentNameHere
然后使用REST API构建队列并指定需求:
Param(
[string]$collectionurl = "http://server:8080/tfs/DefaultCollection/",
[string]$projectName = "0323ScrumTFVC",
[string]$keepForever = "true",
[string]$BuildDefinitionId = "1",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
function CreateJsonBody
{
$value = @"
{
"definition": {
"id": $BuildDefinitionId
},
"sourceBranch": "$/0323ScrumTFVC",
"demands":["Agent.Name -equals AgentNameHere"]
}
}
"@
return $value
}
$json = CreateJsonBody
$uri = "$($collectionurl)/$($projectName)/_apis/build/builds?api-version=2.0"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
这里的机票:Specifying agent at queue build time with TFS 2015。
但是,此方法不适用于UI 。