【问题标题】:Cruisecontrol status with chained batch files带有链接批处理文件的 Cruisecontrol 状态
【发布时间】:2012-04-01 16:38:09
【问题描述】:

一旦 TFS 构建被删除,我将尝试使用 Cruisecontrol 将构建正确移动到 IIS 文件夹。 我打算让它运行一个批处理脚本,然后它会在内部使用“调用”批处理脚本来调用 2-3 个其他脚本。

我需要从彼此内部调用批处理文件,因为我还将一些参数从一个脚本传递到下一个脚本。

我能否以某种方式在巡航控制仪表板上显示来自各种批处理文件的有意义的状态消息,在调用下一个批处理文件时更改?

关于我们的设置:

我应该补充一点,我们应该使用 TFS 进行版本控制和构建。 TFS 有自己的专用 drop 服务器,一旦我们将构建排队,就会成功构建和删除。这段代码,我们可以通过配置IIS的应用服务器的网络共享文件夹访问。

问题是一旦构建完成,我们需要最终将代码放在我们的应用服务器上,运行 IIS。现在有多个小步骤才能使代码在环境中上线。比如,我们需要手动添加一些 dll 并备份当前运行的代码。因此,发布 TFS 构建的步骤是我尝试使用 CruiseControl 自动匹配的步骤。

【问题讨论】:

  • 您是否在使用 Team Build (TFS) CruiseControl.Net?如果有,为什么?
  • 添加了更多关于我们设置的细节。如果您可能需要任何其他详细信息来更好地理解我的查询,请告诉我

标签: .net tfs msbuild cruisecontrol.net


【解决方案1】:

我会完全放弃 CruiseControl 并使用 Team Build 作为唯一的构建控制器。通过添加TFS Build Extensions,您可以轻松设置作业的复制部分,该部分将从二进制文件复制到您域中任何位置的文件夹中。您还可以从使用他们的 Powershell 任务中受益;在不确切知道您的批处理文件做什么的情况下,我很确定您可以用一个 Powershell 脚本替换它们(可以远程运行)。

【讨论】:

  • 我不想在每次构建被触发时将应用程序部署到 IIS。只有在需要时,我才需要部署特定的构建。所以可能有 10 个由 TFS 构建的版本,但我可能只希望部署最后一个。
  • 如果您事先知道将在 IIS 上部署某个构建,则可以使用 Team Build 的流程参数轻松控制部署步骤。如果事后决定(取决于构建的质量),部署部分的单独构建工作流程将是我的解决方案。只需处理一个构建引擎即可获得很多好处。
  • tbergstedt,那么 TFS 能否满足我的以下需求? a)如果我需要,在 IIS 文件夹中的另一台服务器上构建和复制代码。 b) 在将代码复制到 IIS 服务器之前,将一些额外的 DLL 作为平面副本添加到 bin 文件夹 c) 在复制到 IIS 文件夹之前,将 IIS 文件夹中安装的代码备份到新文件夹 d) 在此复制开始之前,停止IIS,并在复制完成后启动 IIS。 e)... TFS 甚至可以访问另一个服务器的文件夹结构来完成这一切吗? f) 还为签入 TFS 的 RDL 和 SQl 脚本创建可部署文件夹
  • 这是相当多的清单(我明白你为什么一开始就选择 CruiseControl),但是是的;至少如果您将 TFS 构建扩展添加到您的构建配置中。 TFS 本身无法完成您的所有任务,但一些 Powershell 脚本可以。这样做的好处是您可以将所有构建定义和工具集中在一个地方并进行配置。
  • powershell 脚本执行在我们的服务器上受到控制和禁止(仅适用于管理员类型的东西):(所以我想排除了它。
【解决方案2】:

我认为CC.Net只有三种状态,绿色,黄色,红色。

我要做的是在您的流程中添加一个电子邮件步骤,以便在每个步骤完成时向任何人发送电子邮件。您还可以设置一个 twitter 帐户并使用 LinqToTwitter 或其他方式发布此状态。为此,您可能必须编写一个控制台应用程序并从您的 bat 文件中调用该控制台应用程序来执行推文,但这会非常酷。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多