使用 TFS 2015 在队列构建时指定代理
Specifying agent at queue build time with TFS 2015
是否可以配置一个构建,以便您可以在手动对构建进行排队时设置要运行的代理?
你的场景有什么特别之处吗?
通常,在 VSTS 中,您可以 select 在手动排队构建时直接 运行 要 运行 哪个代理(托管):
更新:
如果您使用本地 TFS(在您的方案中为 TFS 2015)或 VSTS 专用代理。然后你可以在排队构建时设置需求。
您还可以使用 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)}
这似乎是 VSTS 2015 上的唯一方法:
没有友好的下拉菜单,所以你必须输入它。
是否可以配置一个构建,以便您可以在手动对构建进行排队时设置要运行的代理?
你的场景有什么特别之处吗?
通常,在 VSTS 中,您可以 select 在手动排队构建时直接 运行 要 运行 哪个代理(托管):
更新:
如果您使用本地 TFS(在您的方案中为 TFS 2015)或 VSTS 专用代理。然后你可以在排队构建时设置需求。
您还可以使用 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)}
这似乎是 VSTS 2015 上的唯一方法:
没有友好的下拉菜单,所以你必须输入它。