Msbuild 与TeamCity建立构建流程

Msbuild 与TeamCity建立构建流程,msbuild,build,continuous-integration,teamcity,Msbuild,Build,Continuous Integration,Teamcity,我开始在我的团队中实施CI,我选择了TeamCity,因为它对小型团队来说是免费的,而且它现在似乎非常流行,有很多不错的选择 我还没有确定这台服务器的“典型”或最佳用例是什么 在我看来,绝大多数构建任务都可以使用其他工具更好地执行(在一些构建脚本中,比如MSBuild/NANT),而TC仅用于发出单元测试/build触发器 我发现很难建立完整的构建过程(复制文件/调用更复杂和基于逻辑的代码等) 在构建过程中设置TC的好方案是什么 我们的产品是基于C#的软件,带有各种“插件” 我们正在构建3个大的

我开始在我的团队中实施CI,我选择了TeamCity,因为它对小型团队来说是免费的,而且它现在似乎非常流行,有很多不错的选择

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

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

我发现很难建立完整的构建过程(复制文件/调用更复杂和基于逻辑的代码等)

在构建过程中设置TC的好方案是什么

我们的产品是基于C#的软件,带有各种“插件”

我们正在构建3个大的.sln文件,当前使用MSBuild运行程序(只需将.sln文件指定为此运行程序的参数)


这只负责构建实际的二进制文件,但对于需要将各个项目的输出组合在一起的事情来说,这是不够的,例如创建安装程序。

我能给出的最佳答案是描述我们的团队城市过程。我不能告诉你什么最适合你。我也不能告诉你什么是典型的,因为仅在我的公司,我们就有8种使用teamcity的方式

在我们的.NET项目中(这似乎是您关注的焦点,因为您提到了MSBuild/NAnt),我们有多个构建步骤的构建。一个使用teamcity的解决方案运行程序进行编译,另一个使用其nunit测试运行程序,最后一个使用msbuild复制文件

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

我们有一些只执行NAnt运行程序的java构建

做最适合你和你当前环境的事情。接受它一段时间,然后看看你想要改变什么

如果您已经有了一个好的msbuild或nant脚本,只需将teamcity指向该脚本并将其用于触发

我喜欢使用teamcity的solution runner,因为它非常有效。他们的试跑者也是如此。但是MSBuild/NAnt对于文件模式工作来说确实很好


希望能有所帮助。

我们使用TeamCity的方式如下: 1.运行持续集成构建(在有人提交代码时立即触发) 2.每日构建 3.夜间部署(使用批处理/shell脚本)
4.健全性测试(在夜间部署时启动)

技术上,您可以通过脚本或工具完成TeamCity所做的一切。TeamCity的美妙之处在于它提供了开箱即用的简单方法来组织您的任务。TeamCity的核心是命令行和与业界工具的开箱即用集成。它们减轻了配置负担,因此通过指定一些变量或参数,您可以自动完成繁重的脚本可能完成的关键任务。UI以直观的方式巧妙地接受命令行参数。我最喜欢的TeamCity用例是它的历史意义,这源于其UI的强大。想象一下,如果您必须找出上次运行的脚本失败的时间或原因?您必须保存历史日志、工件等,这些都需要时间来整理以回答简单的问题。现在,假设您必须报告自动化任务(构建)的历史趋势,您将需要一个自定义实现,该实现将筛选您收集的所有数据,以报告或回答简单的问题,如“此构建是否需要更长的时间?我们的单元测试数量是否在增加?”等等。所有这些数据点都是即时收集的,并通过teamcity为您报告。如果你说不出来,我认为这是一个漂亮的工具。

你需要描述你的开发“堆栈”,以便人们提出建议。听起来您使用的是基于Microsoft的东西(您提到了MSBuild/NANT),但这还不够。您目前如何构建、测试和部署您的应用程序?也许您也可以分享您在这个问题上的经验: