【发布时间】:2011-04-07 16:13:20
【问题描述】:
我目前正在设置一个新的构建服务器,并且我对社区可能对 Hudson 或 CruiseControl.NET 等软件提出的任何建议感兴趣,这些软件可以简化构建过程并增加额外的价值。
以前我使用自定义批处理文件设置了一个构建服务器,该批处理文件将运行 msbuild 和其他此类工具,这些工具由 subversion 挂钩触发,以允许每个分支完成连续构建。这个想法是最终我们还将执行自动化测试和/或静态分析,尽管我们从未真正做到这一点。该服务器还充当我们的源代码存储库、用于构建 Web 项目的测试机器,以及用于团队开发人员的自定义仪表板和门户网站的 Web 服务器。
在这一点上,我的想法是将旧构建服务器的一些职责分开,至少一个构建服务器只负责创建构建,一个网络服务器负责充当开发人员的内部网样式仪表板站点,也许还有一个额外的 Web 服务器作为 Subversion 存储库。如果事实证明将 Subversion 代码与 SvnServe 保持在同一台服务器上更好或更容易,那么我可能会选择将 Subversion 存储库放在 Web 服务器上,但仍然保持构建服务器分开。没有任何流行的构建服务器和 CI 解决方案的个人经验,我很好奇 CruiseControl.NET、Hudson 或其他解决方案如何适合这种类型的配置。例如,CC.NET 和 Hudson 似乎都有 Web 界面,但文档并没有明确说明这在不同的硬件/系统配置下如何发挥作用,所以我不确定是否需要 Web 部分在构建中服务器本身与否。
就技术而言,我正在处理基于 .NET/C# 的代码,这些代码混合了 Web/WinForms/WPF,我们使用一些单独的 Subversion 存储库来托管这些项目。此外,为一些遗留应用程序支持 Visual FoxPro 和 Visual Source Safe 会很好。我还想让更多的团队成员参与监控构建,并希望最终让开发人员尽可能简单地为他们自己的项目创建构建设置。另外我应该提到,我没有在 IIS 中设置基于 Java 的 Web 应用程序的经验,但我确实有相当多的设置和管理 ASP.NET 应用程序的经验,所以如果这可能会使基于 .NET 的产品更受欢迎,除非我可以否则相信。
更新(在研究 Hudson 之后): 在为 Hudson 提供所有建议之后,我开始研究在我的两台 Windows 2008 服务器上 get it up and running 所涉及的内容。据我所知,Web 部分(主服务器)将在我的网络服务器上运行,但似乎不支持 IIS,因此这会使事情变得非常复杂,因为我想将它与我的其他 Web 应用程序托管在同一台机器上。在构建服务器上,我将安装 Hudson 的第二个副本,它将充当从属服务器,并且只执行由主服务器委托给它的构建。要让它工作,我会是installing Hudson as a Windows Service,还需要安装一些unix compatibility utilities。不幸的是,UnxUtils download link 在我检查时似乎也被破坏了,所以在我解决这个问题之前我无法真正前进。所有这一切听起来真的和安装 CruseControl.NET 一样复杂,甚至更复杂。不幸的是,现在这让我不得不研究 CruiseControl.NET 和 TeamCity。
更新(关于 TeamCity):在仔细研究 TeamCity 之后,我意识到至少服务器部分也是用 Java 编写的,并且部署方式与 Hudson 非常相似。幸运的是,Tomcat 似乎可用于在 IIS 中托管 servlet,尽管我找不到一个好的直接指南来描述如何实际完成此操作。因此,当我遇到看起来可能是major snag 的东西时,我暂时跳过了它。
仅限 TeamCity 专业版 支持 TeamCity 默认 认证,不支持 更改身份验证方案。
由于 Windows 身份验证可能是我们想要的方向,现在看起来它可能会重新评估 CruiseControl.NET 或 Hudson,如果我能掌握 UnxUtils 并了解更多关于我如何做的信息在我现有的 IIS 配置中托管 Hudson 的仪表板部分。有什么指点吗?
更新(关于 Jenkins):我最终对 Hudson 进行了足够多的实验,最终得到了一个我很满意的合理构建服务器设置,如果我可以扩展它以做更多事情需要。当然,当 Oracle 接管 Hudson 和 Jenkins 后,我转而使用 Jenkins,这就是我今天使用的,带有一点点 powershell 来帮助将事情联系在一起。我现在对这种方法非常满意,除了基于 Java 之外,Jenkins 还对其他开发环境(例如 .NET 和 MSBuild)提供了相当多的支持。
【问题讨论】:
标签: msbuild cruisecontrol.net hudson dashboard build-server