更新:Jenkins是最新版本的 hudson 。现在每个人都应该使用 Jenkins。我会相应地更新链接。
Hudson是免费的并且非常容易配置,并且可以轻松地在 VM 上运行。
部分来自我的旧帖子:
我们用它来
部署 Windows 服务 部署 Web 服务 运行 MSTests 并显示与任何 junit 测试一样多的信息 跟踪低、中、高任务 趋势图警告和错误 以下是 Hudson 支持的一些内置 .net 内容
MSBuild NAnt MSTest Nunit Team Foundation Server fxcop stylecop compiler warnings code tasks 另外,上帝保佑你使用的是安全的视觉源,it supports that as well .我建议你看看 Redsolo's article on building .net projects using Hudson
您的问题 问 :我需要什么样的工具/许可证?现在,我们使用 Visual Studio 和 Smart Assembly 进行构建,并使用 Perforce 进行源代码控制。我是否需要其他东西,或者是否有相当于运行自动化脚本的 cron 作业? 答:我刚刚在运行 Windows 服务器操作系统的全新、修补安装的 VM 的全新副本上安装了 Visual Studio。所以你需要许可证来处理它。 Hudson 将自己安装为 Windows 服务并在端口 8080 上运行,您将配置您希望它扫描代码存储库以获取更新代码的频率,或者您可以告诉它在特定时间构建。所有可通过浏览器配置。 问:除了一个损坏的构建的迹象之外,这到底会给我带来什么?我是否应该在此解决方案(sln 文件)中设置将由这些脚本运行的测试项目,以便我可以测试特定的功能?目前,我们有两个这样的测试,因为我们没有时间(或者坦率地说,没有经验)进行良好的单元测试。
答:第一次构建失败或变得不稳定时,您会收到一封电子邮件。如果单元测试失败或者可以通过您设置的任意数量的标准将其标记为不稳定,则构建是不稳定的。当单元测试或构建失败时,您将收到电子邮件,它会告诉您失败的位置、原因和方式。通过我的配置,我们得到:
自上次工作构建以来的所有提交列表 提交这些提交的注释 提交中更改的文件列表 构建本身的控制台输出,显示错误或测试失败 问:为此,我需要什么样的硬件?
答:一个 VM 就足够了 问:一旦构建完成并经过测试,将构建放在 ftp 站点上或通过其他方式进行内部访问是一种常见的做法吗?这个想法是这台机器进行构建,我们都去它,但如果我们需要,可以进行调试构建。
答: Hudson 可以用它做任何你想做的事情,包括通过 md5 哈希对其进行标识、上传、复制、存档等。它会自动执行此操作,并为您提供长期运行的构建工件历史记录。 问:我们应该多久进行一次这种构建?
答:我们每小时轮询 SVN,查找代码更改,然后运行构建。 Nightly 还可以,但 IMO 有点无用,因为您昨天所做的工作在您进入的早晨不会在您的脑海中浮现。 问:空间是如何管理的?如果我们每晚进行构建,我们应该保留所有旧构建,还是在大约一周左右后开始放弃它们?
答:这取决于你,经过这么长时间,我将我们的构建工件移动到长期存储或删除它们,但是所有存储在我保留的文本文件/xml 文件中的数据,这让我可以存储变更日志、趋势图等服务器占用的空间很小。您也可以将 Hudson 设置为仅保留来自尾随构建的工件 问:还有什么我在这里没有看到的吗?
答:不,现在就去找 hudson ,你不会失望的!