2016-08-03 3 views
0

У меня трудно найти, как правильный способ передать определенных переменные и аргументов определения сборки к новой сборке двигателю API 2.0 с TFS 2015. Я использую TFS 2015 Update 3 на месте.Как правильно передать переменные & исходную версию API 2.0 VNext сборки в TFS 2015

Я вызвал POST с помощью PowerShell, который выглядит следующим образом:

$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 - Определение Подробности - Пересмотрены ответ на возможную правильную структуру представить

ответ

2

Тело часть для REST API должен выглядят так:

{ 
    "definition": { 
    "id": 28 
    }, 
    "sourceBranch": "$/xxxx/xxxx", 
    "SourceVersion": "Cxxxx", 
} 

Тогда вы может указать sourceBranch и SourceVersion.

================================================================================================================================== =====================

пример:

$Build_Definition_ID = '28' 
$TFSInstanceURL = 'http://tfsservername:port/tfs' 
$ProjectCollection = 'DefaultCollection' 
$TeamProject = 'TestCase' 
$Changeset = "C139" 
$sourceBranch = "$/TestCase/TestCaseProject-branch" 

$body = @" 
    { 
     "definition": { 
      "id": "$Build_Definition_ID" 
     }, 
     "sourceBranch": "$sourceBranch", 
     "SourceVersion": "$Changeset", 
    } 
"@ 
+0

вы можете дать представление о переменных. Это выполнило бы полную проблему, с которой я пытался работать. Благодаря! – SheldonH

+0

Вы можете попробовать передать $ Changeset в «SourceVersion» и создать новую переменную $ sourceBranch для «sourceBranch», проверить обновленный пример в ответе. –

+0

ОК. Я дам вам выстрел и обновление с любыми проблемами. спасибо за ваше время, предоставляя хороший пример. Надеюсь, это поместит счет – SheldonH