代理的 TFS 构建持续时间报告

2023-12-03

我正在尝试构建一份报告来显示各种构建代理的相对效率,但无法从该工具中获取我需要的信息。

我想要的是一个包含以下列的简单网格:

  • 内部版本号
  • 构建定义
  • 构建代理
  • 构建状态
  • 构建开始时间
  • 构建持续时间

这可以让我做一些类似的事情,比如根据agent2 到agentN 上的相同构建定义,绘制agent1 上给定构建定义的成功构建持续时间。

我该怎么办呢?


我最初的目的是向你指出TFS OLAP 立方体并描述如何找回你想要的东西。然后我意识到立方体不提供哪个代理构建了哪个构建的信息。

然后我认为编写一个小型 TFS 控制台应用程序来打印您想要的信息会很简单:

using System;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;

namespace BuildDetails
{
    class Program
    {
        static void Main()
        {
            TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFS:8080/tfs/CoLLeCtIoNNaMe"));
            var buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer));

            IBuildDefinition buildDefinition = buildService.GetBuildDefinition("TeamProjectName", "BuildDefinitionName");
            IBuildDetail[] buildDetails = buildService.QueryBuilds(buildDefinition);

            foreach (var buildDetail in buildDetails)
            {
                Console.Write(buildDetail.BuildNumber+"\t");
                Console.Write(buildDefinition.Name+"\t");
                Console.Write(buildDetail.BuildAgent.Name+"\t");
                Console.Write(buildDetail.Status+"\t");
                Console.Write(buildDetail.StartTime+"\t");
                Console.WriteLine((buildDetail.FinishTime - buildDetail.StartTime).Minutes);                
            }           
        }
    }
}

This won't compile, since
enter image description here

Eventually I dove into the IBuildInformationNode[] and got the build agent as follows:

IBuildInformation buildInformation = buildDetail.Information;
IBuildInformationNode[] buildInformationNodes = buildInformation.Nodes;
string agentName;
try
{
  agentName = buildInformationNodes[0].Children.Nodes[3].Fields["ReservedAgentName"];
}
catch
{
  agentName = "Couldn't determine BuildAgent";
}
Console.Write(agentName + "\t");

try-catch 是必要的,因此您可以处理在代理选择之前失败/停止的构建。

如果您使用后一部分作为失败的替代品Console.Write(buildDetail.BuildAgent.Name+"\t");您最终应该得到一个控制台应用程序,其输出可以通过管道传输到 *.CSV 文件,然后导入到 Excel。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代理的 TFS 构建持续时间报告 的相关文章

  • 在“获取源”步骤之后,TFS 保持不同步

    We migrated to TFS 2015 RTM recently and were successful in creating build pools configuring build agents and build defi
  • TFS 2015 Visual Studio Build - 未创建包 .zip

    我正在尝试构建我的解决方案并将 Web 应用程序打包到要部署的 Web 部署 zip 包中 我已经添加了Visual Studio 构建使用以下 MSBuild 参数进行步骤 p DeployOnBuild True p WebPublis
  • 从 TFS 2015 构建代理运行时,VS .NET Core 项目的 DotNet CLI 构建失败

    Problem 命令dotnet build 从 TFS 2015 构建代理运行时失败 并出现以下错误 C Program Files x86 MSBuild Microsoft VisualStudio v14 0 DotNet Micr
  • TFSBuild/MSBuild 和项目参考与文件参考

    我们有一个使用项目引用的大型 VS 解决方案 该解决方案由 TFS Build 构建 如下所示 Solution Project 1 Project 2 Project Project N 由于解决方案太大 我们有几个日常使用的较小解决方案
  • Jasper Reports:如何编译子报表

    我有一个独立的应用程序 它的职责之一是获取 jrxml 文件的路径并编译它 我可以毫无问题地执行此操作 直到出现带有子报表的报表 其中主报表的编译不会编译其任何子报表 从而导致稍后找不到子报表 jasper 文件 有什么办法可以 1 设置J
  • 如何在 TFS Build 2010 中进行构建定义,可配置 w.r.t 输入变量值和“要构建的项目”

    我们使用 TFS Build 2010 进行构建 我们有两个源代码分支 假设branchA 和branchB Now as a part of the build definition we set the projects to buil
  • MSBuild TFS 内部版本号

    我已经使用 SVN 一段时间了 最近在一个项目中我正在使用TFS 对于构建 我喜欢在项目输出上附加 更新构建版本号 我在主页上执行此操作 以便它在应用程序上清晰可见 由于应用程序可以在多台计算机上运行 因此可以方便地了解正在运行的版本 我在
  • 如果测试失败如何停止 TFS 构建?

    如果冒烟测试失败 如何停止 TFS 2013 构建 例如 我有两组测试 冒烟和回归 如果冒烟测试失败 我想让 TFS Build 停止 有这个参数吗 Thanks None
  • 授予用户 ' 的权限不足以执行此操作。 (rsAccessDenied)"}

    我使用 SSRS 2005 创建了一个报告模型并发布到本地服务器 但是 当我尝试使用报告生成器运行我发布的模型的报告时 出现以下错误 报告执行错误 授予用户的权限不足以执行此操作 拒绝访问 这是因为您运行报表生成器的用户缺乏权限 只需授予该
  • 如何在 Birt 设计器中对数据立方体进行切片?

    我在 Birt 设计器中使用以下数据创建了一个数据立方体 衡量标准 营业额 维度 产品 地点和时间 我现在有一个三维 OLAP 数据立方体 我想在二维数组中显示 我的问题是我不知道如何为一维分配常量值 例如 product computer
  • 我可以制作两栏水晶报表吗?

    我有一份报告 其中包含该月每一天的一个详细信息行 我想在左侧的一个 组列 中显示第 1 到 15 天的信息 在右侧显示其他天的信息 每个 组列 都包含四个信息列 我可以通过拆分报告数据库查询列来手动完成此操作 但我真的希望有一种更优雅的方法
  • TFS 2015(本地)vNext 构建失败,但 xaml 构建有效

    我已经为 TFS 2015 配置了新的构建服务器 我的 Xaml 构建运行得很好 但 vNext 构建始终停留在 等待可用代理 状态 代理池为绿色 仅配置了一个构建代理 我已多次删除和配置代理 但没有成功 更新1 我从代理日志中得到了这个
  • 复制上个月的值并插入到新行中

    这是我当前表的示例 1 表名称 TotalSales Name Year Month Sales Alfred 2011 1 100 我想要做的是创建一个像这样的表 添加一个新行 上个月的销售额 2 表名称 TotalSales Name
  • VSO/VSTS:在主机代理上使用发布构建工件时出错

    使用 发布构建工件 任务时 构建中会引发以下错误 就在 获取源 之后 任务的定义没有与任何匹配的处理程序 由该代理支持 支持的处理程序 AzurePowerShell AzurePowerShellHandler PowerShell Po
  • 如何在项目之间移动 TFS 2010 构建定义?

    我有一些在 ProjectX 下创建的 TFS 2010 构建定义 现在源代码已移至 ProjectY 下属的文件夹中 如何将构建定义移至 ProjectY 以便它们显示在 ProjectY 的团队资源管理器的构建节点下 我认为没有现成的东
  • 从 WPF 打印/报告的最佳方法是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • TFS 构建失败,文件“无法复制文件”,甚至不在项目中

    我已经设置了 TFS Build 直到昨天为止都运行良好 从那时起 我从一个项目中收到以下错误 C Program Files x86 MSBuild Microsoft VisualStudio v11 0 WebApplications
  • 对于简单的数据库/爱好者设置来说,什么是好的报告服务? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的 PC 上运行着一个微薄的生产环境 用于我在业余时间开发的一个小应用程序 此时我已经完成了基础设置
  • 如何从本地 TFS2015 获取 PAT

    我们希望将自定义步骤从 XAML 构建迁移到本地 TFS2015 中的新构建任务 我安装了 NodeJS 和 tfx cli 但是当 tfx cli 想要连接到 TFS 时 我需要提供 pat 个人访问令牌 但我找不到在哪里可以获得它 所有
  • 如何使用 REST API 导出 SSRS 2017 报告

    我已经设置了 SSRS 2017 我需要使用他们的新 REST API 导出 SSRS 报告 我一直在查看 API 规范here https app swaggerhub com apis microsoft rs SSRS 2 0但我在

随机推荐

  • 使用 MySQL C API - 使用准备好的语句检查插入行是否成功

    我开始学习如何使用 MySQL C API 并遇到了准备好的语句 我以前没有在其他语言中使用过这些 所以这对我来说都是新的 我在网上查了一下 我已经弄清楚如何使用准备好的语句从SELECT查询 现在我想做的是INSERT一些数据 看看是否成
  • 返回与值部分匹配的记录

    我正在尝试让查询工作 该查询从表单控件获取值 有时只是字符串的第一部分 我遇到的问题是 它仅在输入完整字符串时返回记录 即在姓氏框中 我应该能够输入 gr 它会显示 绿色的 灰色的 格雷厄姆 但目前除非使用完整的搜索字符串 否则它不会显示任
  • 在 Ruby 中发出超时的 HTTP HEAD 请求

    在 Rails 应用程序中 我想对资源 用户提供的 URL 发出 HTTP HEAD 请求 以确保它存在 我还想要一个超时 以确保该方法在花费合理的等待时间后失败 实现此目的最直接的方法是什么 如果可能 使用标准库 试试这个片段 requi
  • 使用 A* 的启发式方法来查找增益最高的路径

    假设我想改变 A 中的逻辑 试图找到最有用的路径 即增益最高的路径 而不是找到最短路径 即成本最低的路径 就我而言 目标并不固定为唯一的结束节点 节点定义为具有距离的任何节点B从起点开始 在普通版本 找到最短路径 中 我需要不要高估成本 即
  • PowerShell FTPS 上传失败并显示“系统错误”。

    问题 客户要求我们将从系统中提取的数据上传到他们的 box com 平台 而不是我们普通的 SFTP 实用程序 我有 box com 凭据 并且知道他们需要 FTPS 而不是 SFTP 并且需要被动模式 我抄袭了一个片段ThomasMaur
  • Groovy 中的测试类在 Kotlin 中看不到测试类

    我有一个带有 Kotlin 插件的 gradle 项目 在我的项目中 我使用 groovy 和 Spock 进行测试 用 Kotlin 编写的测试中使用的实用程序类之一 我将其放入 src test kotlin 我试图使用 groovy
  • 对 solr 输入字段进行哈希处理

    我想方便地搜索我们无法以非散列或加密形式索引或存储的字段 有没有办法告诉 solr 在与索引进行比较之前对特定字段进行哈希 或加密 简而言之 我认为这并不容易 这取决于您需要什么级别的安全性 作为一种通用 简单的解决方案 您可以将整个索引存
  • 在 ASP.NET MVC RC1 中对强类型视图使用“添加视图”对话框时出现问题

    我喜欢随 RC1 发布的新 添加视图 对话框 如果您指定视图数据类 它会为您生成一个支架视图 它似乎与我的解决方案中的项目中定义的类配合得很好 我的一些域类继承自外部程序集中定义的基类 并在我的 Web 项目中引用 当我指定这些域类之一时
  • 使用 MS 批处理文件将程序的输出分配给变量

    我需要使用 MS 批处理文件将程序的输出分配给变量 所以在 GNU Bash shell 中我会使用VAR application arg0 arg1 我需要在 Windows 中使用批处理文件实现类似的行为 就像是set VAR appl
  • 使页眉和页脚文件包含在多个 html 页面中

    我想创建包含在多个 html 页面上的通用页眉和页脚页面 我想使用 JavaScript 有没有办法只使用 html 和 JavaScript 来做到这一点 我想在另一个 html 页面中加载页眉和页脚页面 你可以通过以下方式完成此操作jq
  • 使用按钮打开包含库存商品详细信息的页面

    我的目的是在索引页面上显示带有链接的产品 单击链接时 将打开一个 模态 页面 显示该产品的详细信息 我有一个链接到产品页面的按钮 但没有链接到索引页面上的其他项目 如何使用此链接打开每个产品页面 按钮的代码
  • Datetime - 确定 R 中多个(n)日期时间范围是否相互重叠

    嗨 朋友们 我在查找多个日期时间范围是否相互重叠以及如果是的话 则查找它们重叠的时间段时遇到问题 我参考了以下链接确定两个日期范围是否重叠 and 检测重叠周期的算法还有更多 不知道这是否正确 我有 n 3 的示例解释 假设我有 n 个开关
  • 如何在TabActivity的单个选项卡下管理多个Activity

    问题就在这里 在我的应用程序中 我有 5 个包含活动的选项卡 在每个场景中 我都必须显示不同的屏幕 例如 选项卡的主要活动是列表视图 当我单击其中一个项目时 我想显示带有另一个列表视图的第二个屏幕 当用户选择一个项目等时 该屏幕将显示另一个
  • 找不到 -lFolly 的库

    将react native从版本0 63 2更新到0 66 1后 当我尝试构建我的应用程序时 我在Xcode中收到以下错误 找不到 lFolly 的库 我尝试过跑步pod install并清理构建文件夹 我的图书馆搜索路径看起来像this用
  • SetPixel 之后的 GetPixel 给出不正确的结果

    我从一张 jpg 中设置像素 另存为 jpg 文件 再次读取新文件 获取像素 但它给了我不正确的结果 这是我的代码 use Image Magick use Data Dumper my im new Image Magick im gt
  • 当我有来自 Code::Blocks 中同一组源文件的两个 .cpp 文件时,如何运行其中一个?

    我有两个不同的 cpp一个项目的同一组源下的文件 链表 我尝试运行一个名为 customer 的链接列表文件 但它只运行另一个名为 video 的文件 如何运行 客户 链表文件 My customer cpp文件处于活动状态 但仍在运行 视
  • Java 线程到 Linux 线程 (LWP) 的一对一映射

    Java之间是否存在一对一的映射关系Thread对象和操作系统线程 轻量级进程 也就是说 如果我有一个Thread对象 我是否可以始终准确地识别一个关联的操作系统线程 并且我将始终拥有相同的关联操作系统线程吗 一般来说 这取决于操作系统和
  • Elasticsearch 无法在 AWS kubernetes 集群上启动

    我正在运行 kubernetes 1 10 的 AWS EKS 上运行我的 kubernetes 集群 我正在按照本指南在我的集群中部署elasticsearch弹性搜索 Kubernetes 我第一次部署它时一切正常 现在 当我重新部署时
  • 我怎样才能“显式地”快速实现一个协议?如果不可能,为什么?

    在C 中 有这个伟大的语言功能称为 显式接口实现 它允许您实现两个或多个接口方法名称冲突的接口 它还可以使方法在使用封闭类型的对象调用它时执行一件事 并在将其转换为接口类型然后调用该方法时执行另一件事 我想知道 Swift 中是否有这样的东
  • 代理的 TFS 构建持续时间报告

    我正在尝试构建一份报告来显示各种构建代理的相对效率 但无法从该工具中获取我需要的信息 我想要的是一个包含以下列的简单网格 内部版本号 构建定义 构建代理 构建状态 构建开始时间 构建持续时间 这可以让我做一些类似的事情 比如根据agent2