【问题标题】:using BuildForge to Build and Deploy .Net applications使用 BuildForge 构建和部署 .Net 应用程序
【发布时间】:2014-01-28 01:35:37
【问题描述】:

我一直致力于让我支持的应用程序能够比手动更自动地构建和部署。我的团队使用 RTC 来存储代码(不是我的选择,如果我说我们会使用 TFS,或者地狱,Subversion),显然他们使用 Build Forge 来构建和部署 Java 应用程序。据我了解,buildforge 只是编排所有内容并运行脚本来执行实际的构建和部署任务。

现在,我一直在编写 powershell 脚本来构建我的代码并进行部署。我似乎在网上找不到任何关于如何实际集成我已经用这个工具完成的任何事情的信息?只是来自 IBM 的大量关于该工具有多棒的绒毛作品?

有没有关于使用 BuildForge 自动化 .net 应用程序的好教程?

【问题讨论】:

  • 我在以前的公司也遇到过同样的问题。哦,这就是我离开的原因之一。祝你好运。

标签: buildforge


【解决方案1】:

这正是我不喜欢 BuildForge 的原因。这是一个很棒的跨平台、多主机编排器,但它并没有真正“构建”任何东西。我在一家公司工作了几年,我们在一台服务器上有大约 800 个项目,在另一台服务器上有 800 个项目。我们发现,如果我们将所有构建步骤都写入 BuildForge,我们就会杀死数据库。因此,我们有一个通用库,它通过调用 NAnt 来完成大部分工作。 MSBuild 本来也是一个不错的选择,但当时 NAnt 更加成熟。

我们每年在 60 台虚拟机上运行 100,000 次构建。我们有一个构建步骤,它与 VSphere 服务器对话以重置 VM,等待它重新联机,然后在其上运行构建。

我还曾在另一家公司工作,该公司使用 AStarTeam 进行源代码控制并使用 BuildForge 进行构建。我建立了一个 TFS 服务器并编写了一个 Get 扩展来从 StarTeam 中提取代码。然后我创建了打包 TFS 构建的 BuildForge 项目。据开发人员所知,他们仍将使用 ST 和 BF,但实际上我获得了 TFS 的所有 Workflow/MSBuild 功能,并且他们有可能在一天内移动源代码并成为所有 TFS。

所以,在 BF 上没有一个 .NET 教程,因为这完全是关于你想怎么做。 Perl、PowerShell、NAnt、MSBuild 等。

【讨论】:

  • 那么您可以在 Build Forge 中使用 powershell 脚本吗?我只是很难找到关于一个人如何与另一个人互动的任何信息。
  • 这是我谷歌搜索中通常出现的链接,这让我认为两者不兼容。
  • 支持?不。兼容的?看起来是这样。 FWIW 也有编写通过 System.Management.Automation 运行 PowerShell 代码的 C# EXE 的方法,因此 VBScript 不应该是唯一的方法。
【解决方案2】:

powershell 和 BF 的问题在于 BF 如何捕获输出。代理捕获 posix 等效的标准输出,但是 powershell 对输出句柄做了一些奇怪的事情,并且输出没有正确地返回到代理中。结果,没有返回到代理的输出,并且该步骤超时。对 7.1.3 行中的控制台代码进行了修复,这可能会阻止步骤超时的发生(在某些情况下,代理没有正确地将心跳发送回控制台)。如果不是(我不是 powershell 用户),那么可以使用包装器来解决这个问题,但这并不明显也不是微不足道的。

是的,BF 是一款出色的多平台自动化工具,但它与您制作的构建工具一样好。它附带了针对几个不同的 SCM 系统进行真正 CI 的部件和文档。条件步骤也使得完全不需要使用适配器来使用 BF 进行真正的 CI。它具有使其成为(几乎)任何环境的出色构建工具的所有要素。

来源:我是 BF 产品的构建工程师。

【讨论】:

  • 好吧,我想你会是谈话对象。您可以将 Nant 与 Build forge 一起使用吗?我将放弃我的 Powershell 脚本(无论如何构建部分,并使用 Nant)。对此有何建议?
  • 我没有亲自使用过 nant。我们有客户这样做。他们没有报告我知道的任何问题。我确实在我的构建中使用了 ant 并且没有问题。 (根据 nant 页面,实际上非常相似)但是,即使构建失败,ant 也会返回 0。这需要使用过滤器来确定构建失败。我不确定 nant 是否对它的返回码做同样的事情。请注意这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-26
  • 2013-02-18
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 2018-01-23
相关资源
最近更新 更多