采用Bamboo或TeamCity作为原生WindowsC++构建自动化/CI服务器
Adopting Bamboo or TeamCity as native Windows C++ build automation/CI server?
目前,我们正在通过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并单击"试试看!"
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- 自动化c++构建
- Visual Studio -如何自动化构建过程
- C++跨平台构建自动化
- 采用Bamboo或TeamCity作为原生WindowsC++构建自动化/CI服务器