【问题标题】:What tools do you use for Automated Builds / Automated Deployments? Why? [closed]您使用哪些工具进行自动构建/自动部署?为什么? [关闭]
【发布时间】:2008-09-19 04:06:42
【问题描述】:

您使用哪些工具进行自动构建/自动部署?为什么?

你推荐什么工具?

【问题讨论】:

  • 取决于语言和平台,我会说...
  • 我只同意一点。只要您的构建器实际上可以构建语言。部署脚本与语言无关,仅与代码所在的位置有关(linux、windows 等)

标签: deployment build-automation


【解决方案1】:

Hudson 用于自动构建。我选择它是因为它最容易设置和演示。一个过于复杂且外观不美观的系统不会给管理人员留下足够的印象,无法让他们参与自动化构建。尤其是在一个惯性很大的项目中。

【讨论】:

  • 这里也使用 hudson。它非常好,并且有一些插件来分析我们的构建创建的数据(如测试报告、覆盖率工具和其他一些代码分析)。
【解决方案2】:

NAnt 用于构建(但 MSBuild、Rake,几乎任何东西都可以)和 CruiseControl.NET 用于部署。我目前正在使用来自 ThoughtWorks 工作室的新 Cruise,因为它提供了一种更好的方式来暂存各种管道,让我可以将我想要的任何版本部署到目标环境。

【讨论】:

  • 看到克鲁斯我很兴奋!
【解决方案3】:

我们使用来自 JetBrains 的 TeamCity。他们还制作 Resharper 和 IntelliJ。

我们使用它来构建我们的 .Net 应用程序,它非常容易设置、连接到 TFS 并从中运行其他工具。它非常精美,实际上让我想起了这个网站。发现它比 CruiseControl 好得多,而且对于我们的团队规模来说,它是免费的。如果您需要大量不同的构建、更多的每个用户构建等等,那么它会花费一些(但仍然相当合理)。

【讨论】:

  • 新版本看起来更漂亮,虽然在界面方面有点复杂。您可以在 TeamCity 网站上查看...免费版本现在允许 20 种不同的构建配置,更进一步。
【解决方案4】:

有趣的是,我只花了两周时间彻底检查(阅读从头开始实施)我们的夜间构建过程。非常有趣(不,真的)。我曾想过安装 Team Foundation Server,但我们使用 Perforce 进行源代码控制,我认为这不值得。

我们的流程现在是一组在专用构建/测试服务器上运行的 Powershell 脚本,它们在计划任务上执行以下操作:

清除整个源代码树(首先检查您是否没有检查任何内容!)

从 Perforce 中删除整个源代码树(从最后一个标记的构建)

生成更改报告(通过同步到 HEAD 并观察发生的情况)

构建应用程序

将 PDB 文件索引到 Perforce 源

将二进制文件和符号存储在专用的符号服务器中

运行测试项目

构建安装程序

标签

向群组发送包含上述所有状态报告的电子邮件

效果很好。

【讨论】:

    【解决方案5】:

    makebash 在 Linux 上

    makecmd 在 Windows 上

    【讨论】:

      【解决方案6】:

      【讨论】:

        【解决方案7】:

        我们结合使用构建工具和持续集成服务器:

        构建工具:

        1. Maven
        2. SBT
        3. Gradle
        4. Rake

        持续集成服务器:

        1. Jenkins
        2. Hudson
        3. Travis CI

        【讨论】:

          【解决方案8】:

          Automated Build Studio.

          它不会让您处理脚本或 xml 文件,而是带有预定义的图形宏操作,可让您轻松创建任务。

          【讨论】:

          • ...但我们是程序员。
          • 我们是程序员,所以我们懒得使用最直观的工具来完成我们的工作。如果这意味着没有脚本没有代码,那就这样吧。
          • 我们是程序员,所以我们懒得使用最好的工具以尽可能少的努力完成工作。直观不一定是图片的一部分 - 效率和成本/结果权衡是。 VI比记事本好很多,ant比make好,java比visual basic好很多,尽管后者在所有三种情况下都更直观。一切都取决于您需要完成的工作。
          【解决方案9】:

          对于我们的 Windows 可编译的东西,我们使用 FinalBuilder

          【讨论】:

            【解决方案10】:

            CruiseControl 用于自动构建。效果很好。

            【讨论】:

              【解决方案11】:

              对于自动化构建,我认为目前最好的工具是 JetBrain 的 Team City。免费版具有大多数 5-10 人团队所需的所有功能。设置很容易,配置新项目很轻松(相对而言),最重要的是,它很可靠。

              对于自动迁移,没有什么比 PowerShell 更好的了。

              【讨论】:

                【解决方案12】:

                UppercuT 使用 NAnt 进行构建,它是极其容易使用的构建框架。

                自动化构建就像 (1) 解决方案名称、(2) 源代码管理路径、(3) 大多数项目的公司名称一样简单!

                http://code.google.com/p/uppercut/

                这里有一些很好的解释:UppercuT

                更多信息


                UppercuT 是一种传统的自动构建,这意味着您设置一个配置文件,然后您就可以免费获得一堆功能。可以说,最强大的功能是能够在一个地方指定环境设置并将它们应用到任何地方,包括构建源代码时的文档。

                可用文档:https://github.com/chucknorris/uppercut/wiki

                特点:

                【讨论】:

                  【解决方案13】:

                  在工作中,我们使用良好的 ol'Ant 来构建我们的 Java servlet。

                  【讨论】:

                    【解决方案14】:

                    我们曾经使用 Kinook 软件的 Visual Build,但最近在使用我们的新应用程序时,我们切换到了 MSBuild,因为它与 TFS 更好地集成并且能够创建自定义任务。

                    【讨论】:

                      【解决方案15】:

                      绝对是 GNU Autotools。 autoconfautomake 是 unix 系统的事实标准。

                      【讨论】:

                      • GNU autotools 在 Windows 上速度非常慢。
                      【解决方案16】:

                      我已经成功使用buildbot,由 subversion 存储库上的提交后脚本触发。这已用于自动化构建和自动化测试。

                      【讨论】:

                        【解决方案17】:

                        ANT 用于构建和部署/安装。

                        打造出色的跨平台安装程序。

                        【讨论】:

                          【解决方案18】:

                          我们使用Hericus Zed Builds And Bugs Management 进行自动化构建。

                          我们有 4 个代码分支,每个分支都有 java、c++、C#、跨平台编译器和适用于 5 个操作系统的安装程序。

                          【讨论】:

                            【解决方案19】:

                            为构建做准备。 用于部署的 Debian 包(因为我们的生产服务器运行它)。

                            【讨论】:

                              【解决方案20】:

                              TeamCity 运行 NAnt 脚本进行构建/打包,运行 PowerShell 进行部署。

                              我发现使用由 TeamCity 提供支持的 NAnt,而不是原生的 TeamCity 运行器,可以让我们拥有更丰富的构建过程(例如 css minimiser 等)。这也意味着完整的构建/打包过程可以在任何开发人员 PC 上运行,而不仅仅是 TeamCity 服务器,从而更容易在构建过程中自定义和调试问题。

                              【讨论】:

                              • 同意。我们针对 TeamCity 使用 UppercuT(使用模板化 NAnt 的传统构建)。
                              猜你喜欢
                              • 1970-01-01
                              • 2010-09-20
                              • 2012-07-28
                              • 2010-09-05
                              • 1970-01-01
                              • 2010-11-10
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多