过滤掉私人构建

时间:2017-08-23 11:32:42

标签: powershell tfsbuild tfs2015

我们将我们的Xaml构建从TFS 2010升级到TFS 2015中的vNext构建定义。作为其中的一部分,我们有一些监视构建的过程。这些进程会过滤掉私有构建(即那些针对搁置集运行的构建,而不会在成功时提交更改)。

在新定义中,我很难弄清楚如何识别这些类型的构建。当我查看构建中的原因时,它设置为Manual,而不是(正如我预期的那样)ValidateShelveset

从REST api中识别这些私有构建的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

对于Vnext构建,使用shelveset的队列构建不会被识别为私有构建。构建原因是“手动”。

根据我的测试,$exclude = @(".html", ".tt", ".xaml", ".csproj", ".sln", ".xml", ".cmd", ".txt",".svn") "DirectoryPath, SourceFileName" | Out-File -FilePath "E:\CSVPaths.csv" -Encoding ASCII Get-ChildItem -recurse "E:\MyFiles" -File -ErrorAction SilentlyContinue | Where-Object { $exclude -notcontains $_.Extension } | Select-Object @{n="SoureFileName";e={$_.Name}},@{n="DirectoryPath";e={$_.DirectoryName}} | Export-csv "E:\CSVPaths.csv" -Force -NoTypeInformation # NB: The "-NoTypeInformation" is an assumption - remove if you what type info. 与其他Manual或BatchedCI版本不同。因此,为了识别针对shelveset的构建,我们可以检查“sourcebranch”。

使用REST API检查构建详细信息(属性):例如

sourceBranch

您可以使用下面的示例代码来获取构建,然后检查GET http://server:8080/tfs/CollectionLC/TFVC-ScrumSample/_apis/build/builds/1027?api-version=2.0 以识别shelveset构建:

sourceBranch

对于其他“私有”版本,您还可以检查构建属性并找出其他属性,然后相应地获取它们。

enter image description here