【发布时间】:2008-09-19 04:06:42
【问题描述】:
您使用哪些工具进行自动构建/自动部署?为什么?
你推荐什么工具?
【问题讨论】:
-
取决于语言和平台,我会说...
-
我只同意一点。只要您的构建器实际上可以构建语言。部署脚本与语言无关,仅与代码所在的位置有关(linux、windows 等)
标签: deployment build-automation
您使用哪些工具进行自动构建/自动部署?为什么?
你推荐什么工具?
【问题讨论】:
标签: deployment build-automation
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 在 Windows 上
【讨论】:
【讨论】:
它不会让您处理脚本或 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
特点:
【讨论】:
在工作中,我们使用良好的 ol'Ant 来构建我们的 Java servlet。
【讨论】:
我们曾经使用 Kinook 软件的 Visual Build,但最近在使用我们的新应用程序时,我们切换到了 MSBuild,因为它与 TFS 更好地集成并且能够创建自定义任务。
【讨论】:
我已经成功使用buildbot,由 subversion 存储库上的提交后脚本触发。这已用于自动化构建和自动化测试。
【讨论】:
ANT 用于构建和部署/安装。
打造出色的跨平台安装程序。
【讨论】:
我们使用Hericus Zed Builds And Bugs Management 进行自动化构建。
我们有 4 个代码分支,每个分支都有 java、c++、C#、跨平台编译器和适用于 5 个操作系统的安装程序。
【讨论】:
为构建做准备。 用于部署的 Debian 包(因为我们的生产服务器运行它)。
【讨论】:
TeamCity 运行 NAnt 脚本进行构建/打包,运行 PowerShell 进行部署。
我发现使用由 TeamCity 提供支持的 NAnt,而不是原生的 TeamCity 运行器,可以让我们拥有更丰富的构建过程(例如 css minimiser 等)。这也意味着完整的构建/打包过程可以在任何开发人员 PC 上运行,而不仅仅是 TeamCity 服务器,从而更容易在构建过程中自定义和调试问题。
【讨论】: