过滤掉私有构建
Filter out Private Builds
我们正在将我们的 Xaml 构建从 TFS 2010 升级到 TFS 2015 中的 vNext 构建定义。作为此过程的一部分,我们有几个监控构建的进程。这些过程会过滤掉私有构建(即那些 运行 针对搁置集而不提交成功更改的构建)。
在新定义中,我很难弄清楚如何识别这些类型的构建。当我查看构建中的 Reason 时,它设置为 Manual
,而不是(如我所料)ValidateShelveset
.
从 REST api 识别这些私有构建的最佳方法是什么?
对于 Vnext 构建,带有搁置集的队列构建不会被识别为私有构建。构建原因是 "Manual".
根据我的测试,sourcebranch
与其他手动或 BatchedCI 构建不同,因此要根据搁置集识别构建,我们可以检查“sourceBranch
”。
使用REST API查看构建细节(属性):eg
GET http://server:8080/tfs/CollectionLC/TFVC-ScrumSample/_apis/build/builds/1027?api-version=2.0
您可以使用下面的示例代码获取构建,然后检查 sourceBranch
以确定搁置集构建:
using System;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Client;
namespace GetBuilds
{
class Program
{
static void Main(string[] args)
{
var tfsUrl = " http://server:8080/tfs/Collection";
var buildClient = new BuildHttpClient(new Uri(tfsUrl), new VssAadCredential());
var builds = buildClient.GetBuildsAsync("YourProjectName");
foreach (var build in builds.Result)
{
Console.WriteLine(String.Format("{0} - {1} - {2} - {3}", build.Definition.Name, build.Id.ToString(), build.Status.ToString(), build.SourceBranch.ToString()));
}
}
}
}
对于其他“Private”build,您也可以查看build属性,找出与其他build的不同,然后相应地获取它们。
我们正在将我们的 Xaml 构建从 TFS 2010 升级到 TFS 2015 中的 vNext 构建定义。作为此过程的一部分,我们有几个监控构建的进程。这些过程会过滤掉私有构建(即那些 运行 针对搁置集而不提交成功更改的构建)。
在新定义中,我很难弄清楚如何识别这些类型的构建。当我查看构建中的 Reason 时,它设置为 Manual
,而不是(如我所料)ValidateShelveset
.
从 REST api 识别这些私有构建的最佳方法是什么?
对于 Vnext 构建,带有搁置集的队列构建不会被识别为私有构建。构建原因是 "Manual".
根据我的测试,sourcebranch
与其他手动或 BatchedCI 构建不同,因此要根据搁置集识别构建,我们可以检查“sourceBranch
”。
使用REST API查看构建细节(属性):eg
GET http://server:8080/tfs/CollectionLC/TFVC-ScrumSample/_apis/build/builds/1027?api-version=2.0
您可以使用下面的示例代码获取构建,然后检查 sourceBranch
以确定搁置集构建:
using System;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Client;
namespace GetBuilds
{
class Program
{
static void Main(string[] args)
{
var tfsUrl = " http://server:8080/tfs/Collection";
var buildClient = new BuildHttpClient(new Uri(tfsUrl), new VssAadCredential());
var builds = buildClient.GetBuildsAsync("YourProjectName");
foreach (var build in builds.Result)
{
Console.WriteLine(String.Format("{0} - {1} - {2} - {3}", build.Definition.Name, build.Id.ToString(), build.Status.ToString(), build.SourceBranch.ToString()));
}
}
}
}
对于其他“Private”build,您也可以查看build属性,找出与其他build的不同,然后相应地获取它们。