【问题标题】:Filter out Private Builds过滤掉私有构建
【发布时间】:2017-08-24 16:33:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: powershell tfsbuild tfs-2015


    【解决方案1】:

    对于 Vnext 构建,带有搁置集的队列构建不会被识别为私有构建。构建原因是“手动”。

    根据我的测试,sourcebranch 与其他 Manual 或 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”构建,您也可以查看构建属性,找出与他人不同的地方,然后相应地获取。

    【讨论】:

    • 谢谢。这与我得出的结论几乎相同。由于分号是搁置集中的保留字符,我们可以测试它的存在并通过这种方式将构建标识为私有。老实说,这似乎是一种倒退。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 2014-05-07
    • 2014-12-23
    • 2022-09-27
    • 2017-11-19
    • 2021-08-02
    相关资源
    最近更新 更多