【发布时间】:2016-12-09 10:04:47
【问题描述】:
我很难找到将定义的变量和构建定义参数传递给带有 TFS 2015 的新 API 2.0 构建引擎的正确方法。我正在使用本地 TFS 2015 更新 3。
我使用 powershell 触发了一个 POST,如下所示:
$Build_Definition_ID = 1234
$TFSInstanceURL = 'http://tfsservername:port/tfs'
$ProjectCollection = 'CollectionName'
$TeamProject = 'ProjectName'
$Changeset = "12345"
$UserName = "$env:USERDOMAIN\$env:USERNAME"
$UserNamePartial = $env:USERNAME
$body = @"
{
"definition": {
"id": "$Build_Definition_ID"
}
}
"@
$baseUri = $TFSInstanceURL+"/"+$ProjectCollection+"/"+$TeamProject+"/_apis/build"
$postUri = $baseUri+"/builds?api-version=2.0"
##Create a new PSCredential based on username/password
$User = 'foo\bar'
$Password = 'examplepass'
$securePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($User, $securePassword)
### Queue a build ###
##Call the REST API for TFS that does a POST request to queue a build with the body of the request to be the build definition
$buildResponse = Invoke-RestMethod -Method POST -Credential $credential -ContentType application/json -Uri $postUri -Body $body
#Write-Host (ConvertTo-Json $buildResponse)
#ConvertTo-Json $buildResponse | out-file -FilePath $Changeset-ResponseJson.json -Force
powershell 脚本正在成功启动定义。但是,我仍然没有成功: - 传递我想要运行的特定源版本(例如 C12345) - 传入自定义变量值
另外: 如果您知道传递参数的正确方法,例如从源映射的文件夹(以允许动态选择不同的分支),那么这将有所帮助。
我评估过的当前资源:
- Visual Studio Docs > Api > Build > Builds
- 邮递员 - GET - 定义详细信息 - 审查了可能提交的正确结构的响应
【问题讨论】:
标签: json powershell tfs tfsbuild tfs-2015