采用Bamboo或TeamCity作为原生WindowsC++构建自动化/CI服务器

Adopting Bamboo or TeamCity as native Windows C++ build automation/CI server?

本文关键字:自动化 构建 CI 服务器 WindowsC++ 原生 Bamboo TeamCity 采用      更新时间:2023-10-16

目前,我们正在通过FinalBuilder通过一个非常简单的国产Apache接口运行我们的自动化(而不是CI)构建,该接口只在我们的服务器上启动FB脚本。(我喜欢FinalBuilder,并会保留它,但它是CI服务器,FinalBuilder服务器只是不削减它的IMHO——尤其是它目前不支持任何"代理"概念来在机器之间分发构建。)

我们正在Windows上进行本机C++开发,在需要和有意义的地方混合了一些.NET。

我们目前的FinalBuilder脚本做得很好,从创建夜间构建到完整发布(构建/自动翻译/构建/单元测试/创建设置/将创建的工件放在网络共享上/…),但我们的网络接口排队能力用户可跟踪性报告非常有限。

我环顾四周,TeamCity和Bamboo似乎勾选了类似的框,但我能找到的大多数描述只涵盖Java和/或.NET的简单构建。

所以我的具体问题是,给定

  • 几个(20-30)复杂的FinalBuilder脚本,它们的工作令我满意,我将不得不集成到新的自动化/"CI"服务器中
  • 本机Windows C++和.NET项目
  • 目前,实际的构建(=编译器调用)是通过几个Visual Studio解决方案文件完成的
  • 目前有一台构建服务器机器,希望扩展到2-3个atm
  • 使用JIRA作为问题跟踪器
  • 使用AccuRev作为SCM

哪种工具更适合,以及为什么:TeamCity(目前为6.5)或Bamboo(目前为3.1)。

(注意,我也希望在TeamCity和Bamboo论坛上得到一些高度主观的答案。)

对于TeamCity端,它与Jira集成,具有AccuRev插件,并对VisualStudio/C++项目有很好的支持。它还可以运行任意脚本。

您可以通过基于HTTPAPI的API触发构建并获得一些构建结果。在UI中,您可以看到已经构建了哪些更改以及在哪些构建配置中。轻松地将任何自定义HTML报告集成到TeamCity UI中(无需编码),发布工件。

也许,您应该尝试这两种解决方案,看看哪一种更适合您(使用Teamcity,您可以免费使用全功能服务器,唯一的限制是构建代理的数量和构建配置的数量)。

免责声明:我是TeamCity开发人员

我发现Bamboo比TeamCity更可信。以下是我的理由:

  • 那些用于VS或Eclipse的Jira插件也是Bamboo插件。:)不需要额外的插件
  • 更好地支持Jira一体化
  • 不错的用户界面,就像你在Jira中使用的那个
  • 能够更好地与其他Atlassian工具集成,如FishEye
  • 更便宜。一个10美元的许可证就足够你的公司了
  • Bamboo上的插件比TeamCity多,有很多插件

为了完整起见:我最终使用了Jenkins+Finalbuilder。:-)

我在类似的环境中工作,使用FinalBuilder进行构建自动化,使用AccuRev进行源代码管理和本地windows项目。

我最终选择了Electric Commander作为该职位的最佳CI解决方案。可以重用FinalBuilder脚本的一部分,并从Electric Commander调用它们,但简单地将FB脚本作为一个构建步骤调用会导致您错过使用Electric Commander*的一些关键优势-实时日志文件处理、在Electric Commander:数据收集和报告中并行到各个步骤级别的能力。

Electric Commander有一个API,它公开了所有产品功能,可以与AccuRev触发器结合使用,以实现非常灵活的解决方案。

免责声明-我非常喜欢Electric Commander,所以我加入了该公司,目前受雇于Electric Cloud。

您可以访问www.electrical-cloud.com并单击"试试看!"

来尝试Electric Commander