您使用哪些工具进行自动构建/自动部署?为什么?
你推荐什么工具?
Hudson用于自动化构建。我选择它是因为它最容易设置和演示。一个过于复杂且外观不美观的系统不会给管理人员留下足够的印象,无法让他们参与自动化构建。尤其是在一个有很大惯性的项目中。
NAnt 用于构建(但 MSBuild、Rake,几乎任何东西都可以)和 CruiseControl.NET 用于部署。我目前正在使用来自 ThoughtWorks 工作室的新 Cruise,因为它提供了一种更好的方式来暂存各种管道,让我可以将我想要的任何版本部署到目标环境。
我们使用来自 JetBrains 的TeamCity。他们还制作 Resharper 和 IntelliJ。
我们使用它来构建我们的 .Net 应用程序,它非常容易设置、连接到 TFS 并从中运行其他工具。它非常精美,实际上让我想起了这个网站。发现它比 CruiseControl 好得多,而且对于我们的团队规模来说,它是免费的。如果你需要很多不同的构建,更多的每个用户构建等等,那么它会花费一点(但仍然相当合理)。
有趣的是,我只花了两周时间彻底检查(阅读从头开始实施)我们的夜间构建过程。非常有趣(不,真的)。我玩弄了安装 Team Foundation Server 的想法,但我们使用 Perforce 进行源代码控制,我认为不值得这么麻烦。
我们的进程现在是一组在专用构建/测试服务器上运行的 Powershell 脚本,它们在计划任务上执行以下操作:
清除整个源代码树(首先检查您是否没有检查任何内容!)
从 Perforce 中删除整个源代码树(从最后一个标记的构建)
生成更改报告(通过同步到 HEAD 并观察发生的情况)
构建应用程序
将 PDB 文件索引到 Perforce 源
将二进制文件和符号存储在专用符号服务器中
运行测试项目
构建安装程序
标签
向群组发送包含上述所有状态报告的电子邮件
效果很好。
make
bash
在Linux上
make
cmd
在窗户上
它不会让您使用脚本或 xml 文件,而是带有预定义的图形宏操作,可让您轻松创建任务。
对于我们的 Windows 可编译的东西,我们使用FinalBuilder。
CruiseControl用于自动化构建。效果很好。
对于自动化构建,我认为目前最好的工具是 JetBrain 的 Team City。免费版具有大多数 5-10 人团队所需的所有功能。设置很容易,配置新项目很轻松(相对而言),最重要的是,它是可靠的。
对于自动迁移,没有什么比 PowerShell 更好的了。
UppercuT 使用 NAnt 来构建,它是非常容易使用的构建框架。
自动化构建就像 (1) 解决方案名称,(2) 源代码控制路径,(3) 大多数项目的公司名称一样简单!
http://code.google.com/p/uppercut/
这里有一些很好的解释:Uppercut
UppercuT 是一种传统的自动构建,这意味着您设置一个配置文件,然后您可以免费获得一堆功能。可以说,最强大的功能是能够在一个地方指定环境设置并将它们应用到任何地方,包括构建源代码时的文档。
可用文档:https ://github.com/chucknorris/uppercut/wiki
特征 :
在工作中,我们使用优秀的Ant来构建我们的 Java servlet。
我们曾经使用 Kinook 软件的 Visual Build,但最近在我们的新应用程序中我们切换到 MSBuild,因为它与 TFS 更好地集成并且能够创建自定义任务。
我已经成功使用buildbot,由 subversion 存储库上的提交后脚本触发。这已用于自动化构建和自动化测试。
ANT用于构建和部署/安装。
制作出色的跨平台安装程序。
我们使用Hericus Zed 构建和错误管理来进行自动化构建。
我们有 4 个代码分支,每个分支都有 java、c++、C#、跨平台编译器和适用于 5 个操作系统的安装程序。
为构建做准备。用于部署的 Debian 软件包(因为我们的生产服务器运行它)。
TeamCity运行 NAnt 脚本来构建/打包和 PowerShell 进行部署。
我发现使用由 TeamCity 提供支持的 NAnt,而不是原生的 TeamCity 运行器,可以让我们拥有更丰富的构建过程(例如 css minimiser 等)。这也意味着完整的构建/打包过程可以在任何开发人员 PC 上运行,而不仅仅是 TeamCity 服务器,从而更容易在构建过程中自定义和调试问题。