cruisecontrol.net - 显示 "Activity"时让 CruiseControl.NET 使用长时间运行任务的输出

标签 cruisecontrol.net ccnet-config

CruiseControl.NET ,我设置了两个项目,一个用于构建,一个用于部署构建包。

我们的构建主要基于 MSBuild ,并且在它运行时,仪表板会不断使用构建的最新输出进行更新。这意味着即使完整构建可能需要 15 分钟,您也可以准确地看到它的位置,并且它正在取得进展。

部署是使用另一个工具(VisualBuild,尽管我看到与 PowerShell 等其他工具相同的基本行为)运行。这是另一个长期运行的任务,但在这种情况下,仪表板不会随着它的进行而更新其输出。由于部署可能需要很长时间,因此很难判断事情是在进行中还是已经停滞不前。输出将记录到 CruiseControl.NET 日志中,一旦完成,将显示在仪表板上,但不会在部署进行时显示。

有没有办法以类似实时的方式从仪表板上更新的其他任意长时间运行的任务中获取输出?是什么让 MSBuild 在这方面与众不同?

最佳答案

CruiseControl.Net 从 1.4 版开始,包括对 build listener files 的支持:这是一种允许通过读取日志文件来跟踪长时间运行任务的执行的机制。虽然这种机制是通用的,并且可以与任何工具一起使用,但 CruiseControl.Net 本身只附带了 MSBuild 的构建监听器。和 NAnt (这意味着这两个工具的进度会自动报告,无需额外配置)。

对于外部工具,例如 VisualBuild,由 <exec> 调用任务,你必须插入你自己的记录器来创建一个简单的进度文件:

<data>
  <Item Time="2007-10-14 08:43:12" Data="Starting Build timetester" />
  <Item Time="2007-10-14 08:43:16" Data="Starting Target build" />
  <Item Time="2007-10-14 08:43:16" Data="Sleeping for 5000 milliseconds." />
</data>

CCNetListenerFile 指向的位置环境变量。

关于cruisecontrol.net - 显示 "Activity"时让 CruiseControl.NET 使用长时间运行任务的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304890/

相关文章:

email - 如何从 CruiseControl.NET 的电子邮件通知中省略某些构建类型?

.net - 如何运行 CruiseControl.NET 任务但仅在特定任务结束后?

msbuild - 如何在未安装 VSTS DB 的情况下构建 .dbproj?

cruisecontrol.net - 是否可以将 Jasmine 集成到 Cruise control.net 中

deployment - 如何使用 CruiseControl.NET 和 MSBuild 部署/发布 Web 应用程序?

.net - Windows Server 2008 上的 CruiseControl 1.6 问题

CruiseControl.net Web 仪表板安全性

cruisecontrol.net - CCNet 1.6 条件插件需要帮助!

cruisecontrol.net - SignTool.exe 偶尔会失败,退出代码为 1