2011-09-11 21 views
0

我开始实施我的团队CI,和我拿起TeamCity的,因为它是免费的,小的时候球队,而且似乎也很走俏,并拥有许多不错的选择。建立一个构建过程与TeamCity的

我还没有确定什么是这个服务器的“典型”或最佳用例。

在我看来,绝大多数构建任务使用其他工具(让它在一些构建脚本(如MSBuild/NANT)中更好地执行),TC仅用于发出单元测试/构建触发器。

我觉得很难建立一个完整的构建过程(大约复制文件/调用更复杂和逻辑基于代码等)。

将TC设置为构建过程的好方案是什么?

我们的产品是一个基于C#的软件,具有各种“插件”。

我们正在建设3个大型的.sln文件,目前使用的MSBuild转轮(简单地指定.sln文件作为参数传递给这个亚军)。

这仅负责构建实际的二进制文件,但是是不够的,需要各个项目的输出端连接起来,结合例如用于创建一个安装程序的东西。

+1

你需要描述你的开发“堆栈”,以便人们提出建议。这听起来像你正在使用基于微软的东西(你提到MSBuild/NANT),但这不是足够的信息。您目前如何构建,测试和部署应用程序? –

回答

1

我可以给出的最佳答案是描述我们的团队城市流程。我无法告诉你什么最适合你。我也不能告诉你什么是典型的,因为在我的公司里,我们只有8种使用团队城市的方式。

在我们的.NET项目(这似乎是你的焦点,因为你提到的MSBuild /南特),我们必须建立与多个构建步骤。一个使用teamcity的解决方案运行器编译,下一个使用它的nunit测试运行器,最后使用msbuild复制文件。

我们有另一个.NET构建遵循类似的模式,但增加了几个步骤调用用python编写的自定义工具。

我们有一些只执行NAnt runner的java版本。

做什么最适合您和您当前的环境。一起生活一段时间,然后看看你想改变。

如果你已经有了一个良好的MSBuild或恶性脚本只是点上的TeamCity,并用它来触发。

我喜欢使用teamcity的解决方案,因为它运行正常。与他们的测试跑步者一样。但MSBuild/NAnt对于文件模式工作非常有用。

希望有所帮助。

0

我们使用的TeamCity如下: 1.运行持续集成构建 2.每日构建 3.每晚部署(使用批处理/ shell脚本) 4.理智测试(只要有人提交代码解雇)(解雇在夜间部署)

+0

也许你可以分享你的这个问题的经验以及:http://stackoverflow.com/questions/7417920/teamcity-global-version-per-project-not-configuration –

0

从技术上讲,您可以通过脚本或工具完成TeamCity所做的一切。 TeamCity的优点在于它提供了开箱即用的简单组织任务。 TeamCity的核心是命令行和开箱即用的整合工具。它们可以减轻配置负担,通过指定一些变量或参数,可以自动执行繁琐脚本可能完成的关键任务。 UI以直观的方式巧妙地接收命令行参数。我最喜欢TeamCity的用例是其历史意义,源于它的用户界面的力量。试想一下,如果你必须弄清楚你上次运行的脚本失败或失败的原因了吗?你将不得不保留历史日志,文物等,这将需要时间来排序和回答简单的问题。现在想象一下,您必须报告自动化任务(构建)的历史趋势,您需要一个自定义实现来筛选所收集的所有数据,以报告或回答简单的问题,例如“这个构建是否需要更长时间?我们的单元测试数量在增加吗?“等等。所有这些数据点都是从盒子中收集起来的,并通过teamcity报告给您。如果你不能说,我认为这是一个美丽的工具。