【问题标题】:How to make TFS build result be "Partially Succeeded" when there are build warnings?有构建警告时如何使 TFS 构建结果“部分成功”?
【发布时间】:2016-06-14 02:52:36
【问题描述】:

我们使用的是 TFS 服务器 2012,并在构建服务器上设置了 CI 构建。

目前,如果编译失败,则构建结果为“失败”,如果有任何单元测试失败,则构建结果为“部分成功”,否则为“成功”。

我的问题是,如果有任何构建警告,无论是编译器警告、代码分析警告、StyleCop 警告还是其他警告,我都不希望结果为“成功”。

有没有办法修改构建配置,使警告的存在导致结果为“部分成功”而不是“成功”?

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    以下自定义活动将构建状态设置为PartiallySucceeded

       [BuildActivity(HostEnvironmentOption.Agent)]
        public class Activity : CodeActivity
        {
             protected override void Execute(CodeActivityContext context)
             {
                  IBuildDetail build = context.GetExtension<IBuildDetail>();
                  build.Status = BuildStatus.PartiallySucceeded;
                  build.Save();
             }
        }
    

    其他可能的选择包括:

    All 所有状态均适用。

    Failed 构建失败。

    InProgress 构建正在进行中。

    None 无可用状态。

    NotStarted 构建未开始。

    PartiallySucceeded 构建部分成功。

    Stopped 构建已停止。

    Succeeded 构建成功。

    【讨论】:

      【解决方案2】:

      当“测试成功”属性设置为“假”且“编译成功”=“真”时,构建报告为“部分成功”。 因此,您可以添加检查这些属性的自定义活动,将此活动添加到游览新的构建模板。

      【讨论】:

      • 将警告视为错误并不是我想要的。如果我走那条路,如果有一个 StyleCop 违规,整个构建将中止。我不想要“失败”,我想要“部分成功”。
      • 这些属性(构建状态和测试成功)在哪里定义以及如何从我的自定义活动中设置它们?另外,如何确定是否有任何警告?
      • 您必须基于Workflow Foundation创建活动,创建新库,并基于顺序工作流将活动集成到模板中,这些属性与工作流相关,您可以通过定义活动和活动之间的绑定来轻松调整您的工作流程父
      • 我想我知道如何制作活动并将其集成到工作流中,但我不确定活动中的代码如何读取/设置这些属性。你能举个例子吗?
      • 工作流封装了活动,因此活动可以访问父级的属性,我今晚尝试编写代码示例
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 2018-04-15
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多