В TFS 2015 для неудачных сборок VNext этапы (задачи сборки), на которых сборка не удалась, хранятся в любом месте БД
Я знаю, что если щелкнуть ссылку на сборку для получения сводной информации, она показывает все шаги, но я не могу найти фактический шаг (задачу сборки), где сборка не удалась нигде с использованием API или поиска в базе данных TFS.
TFS 2015 хранит это где-нибудь, что доступно?
1 ответ
Решение
Вы можете восстановить неудачные шаги из сборки Timeline
с API REST ( Хронология - Получить)
Просто попробуйте ниже пример PowerShell, чтобы получить неудачные шаги (задача сборки) из сборки:
Param(
[string]$collectionurl = "http://ictfs2015:8080/tfs/DefaultCollection",
[string]$projectName = "ProjectName",
[string]$BuildId = "44",
[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)))
$uri = "$($collectionurl)/$($projectName)/_apis/build/builds/$BuildId/timeline?api-version=2.0"
$response = Invoke-RestMethod -Uri $uri -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$steps = $response.records | where {$_.result -eq 'failed' -and $_.type -eq 'Task'} # Filter the failed steps
$failedsteps = @()
foreach($step in $steps){
$customObject = new-object PSObject -property @{
"StepId" = $step.id
"type" = $step.type
"TaskName" = $step.name
"startTime" = $step.startTime
"finishTime" = $step.finishTime
"state" = $step.state
"result" = $step.result
"changeId" = $step.changeId
"workerName" = $step.workerName
}
$failedsteps += $customObject
}
$failedsteps | Select `
StepId,
type,
TaskName,
startTime,
finishTime,
state,
result,
changeId,
workerName #|export-csv -Path C:\FailedBuildSteps.csv -NoTypeInformation