【发布时间】:2010-06-22 21:02:06
【问题描述】:
我问这个问题是因为我发现社区对各种构建引擎(如 MSBuild 和 NAnt)的贡献确实包括促进 CI 服务器的所有任务,例如从源代码控制获取版本、清理文件夹、更改构建号、发送电子邮件等...
仅仅是因为它“侦听”源代码控制存储库中发生的更改吗?我还缺少什么?
【问题讨论】:
标签: msbuild nant continuous-integration
我问这个问题是因为我发现社区对各种构建引擎(如 MSBuild 和 NAnt)的贡献确实包括促进 CI 服务器的所有任务,例如从源代码控制获取版本、清理文件夹、更改构建号、发送电子邮件等...
仅仅是因为它“侦听”源代码控制存储库中发生的更改吗?我还缺少什么?
【问题讨论】:
标签: msbuild nant continuous-integration
Grzegorz Oledzki 链接了一个很好的资源来查找多个 CI 解决方案之间的差异,但应该注意的是,MSBuild 的目的是专门将代码转换为二进制文件,并被 CI 软件用于构建源代码。它确实可以做其他事情,但它的大部分任务都在这个领域内。
除了你提到的关于监听 repo 的内容之外,一些 CI 服务器可以做各种各样的事情,比如^1:
而且通常都来自一个方便的用户界面。
1 并非所有 CI 软件都具有所有这些功能,它绝不是详尽无遗的,并且存在一些重叠。
【讨论】:
我相信CI (Continuous Integration) feature matrix 会回答您关于特定 CI 提供商及其能力的所有问题。
【讨论】:
哇,这个问题有这么多答案。至于 CI 系统可以做什么,构建脚本除了听你的版本控制系统之外不能做......对于初学者来说,像 TeamCity 这样的系统可以让你首先在构建服务器上测试你的代码,然后在如果它通过了初学者的所有测试。
我强烈建议使用 CI 服务器,但我更喜欢将所有构建逻辑保存在 MSBuild 文件中,并将所有失败时通知的人等保存在 CI 服务器中。将逻辑保留在 Build 文件中有助于您在自己的机器上重现构建,并使在 CI 服务器中设置新项目或更改 CI 服务器构建项目的方式变得简单
【讨论】: