[英]How to get TFS Build quality in powershell script?
我需要 powershell 腳本來獲得成功構建的構建質量(已發布或拒絕或試用構建)。
嘗試使用以下腳本:問題是如果我有 4-5 個以上的發布版本,我如何獲取版本列表???? 下面的腳本為我提供了更改 MaxBuildsPerDefinition=2 或 3 的值的即時和下一個。我需要獲取所有發布候選版本。
[string] $tfsLocation = "http://serverURL/tfs"
[string] $projectName = "ProjectName"
[string] $buildDefinitionName = "BuildDefinition"
Add-Type -Path "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Client.dll"
Add-Type -Path "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Build.Client.dll"
$tfsUri = New-object Uri($tfsLocation)
$teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsUri)
$service = $teamProjectCollection.GetService([Type]"Microsoft.TeamFoundation.Build.Client.IBuildServer")
$spec = $service.CreateBuildDetailSpec($projectName, $buildDefinitionName)
$spec.MaxBuildsPerDefinition = 2
$spec.QueryOrder = [Microsoft.TeamFoundation.Build.Client.BuildQueryOrder]::FinishTimeDescending
$results = $service.QueryBuilds($spec)
if ($results.Builds.Length -eq 2)
{
Write-Host $results.Builds[0].Quality
if ($results.Builds[0].Quality = "Released")
{
<<My Script Here>>
} else {
<<My Script Here>>
}
} else {
Write-Error "No builds found."
}
您可以嘗試使用REST API來檢索成功構建的構建質量。 您可以根據您的要求相應地指定過濾器。 您也可以將構建列表導出到.CSV文件。
$collectionurl = "http://serverURL/tfs"
$projectName= "ProjectNname"
$BuildDefinitionId = "74"
$baseUrl = "$collectionurl/$projectName/_apis/build/builds?api-version=2.0&definitions=$BuildDefinitionId&statusFilter=completed&resultFilter=succeeded" # Set the filter based on your requirements.
$builds = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential).value|where({$_.quality -in 'Released', 'Rejected','Trial'}) # filter the builds which have quality elements.
$BuildResults = @()
foreach($build in $builds){
$customObject = new-object PSObject -property @{
"BuildDefinition" = $build.definition.name
"BuildId" = $build.id
"BuildNumber" = $build.buildNumber
"status" = $build.status
"result" = $build.result
"BuildQuality" = $build.quality
"finishTime" = $build.finishTime
"sourceBranch" = $build.sourceBranch
}
$BuildResults += $customObject
}
$BuildResults | Select `
BuildDefinition,
BuildId,
BuildNumber,
status,
result,
BuildQuality,
finishTime,
sourceBranch #|export-csv -Path E:\$projectName-Build.csv -NoTypeInformation
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.