我们使用什么工具进行自动构建/自动部署?为什么?

时间:2020-03-06 14:24:39  来源:igfitidea点击:

我们使用什么工具进行自动构建/自动部署?为什么?

我们推荐什么工具?

解决方案

Hudson用于自动构建。我选择它是因为它最容易设置和演示。过于复杂且外观不流畅的系统不会给管理人员留下深刻的印象,无法将其安装到自动化构建中。特别是在具有很大惯性的项目中。

有趣的是,我只花了两个星期的大修(从头开始阅读实现)我们的每晚构建过程。很好玩(不,真的)。我曾想过安装Team Foundation Server的想法,但是我们使用Perforce进行源代码控制,我认为这样做不值得麻烦。

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

清除整个源代码树(请先检查是否未检出任何内容!)

从Perforce删除整个源代码树(从上一个标记的版本开始)

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

编译应用

将PDB文件索引到Perforce源

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

运行测试项目

生成安装程序

标签

向小组发送电子邮件,其中包含上述所有方面的状态报告

效果很好。

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

在工作中,我们使用出色的Ant来构建Java servlet。

Linux上的make和bash

Windows上的make和cmd

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

对于自动迁移,PowerShell是无与伦比的。

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

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

GNU Autotools绝对是。 autoconf和automake是UNIX系统的实际标准。

自动化的Build Studio。

它带有预定义的图形宏操作,而不是让我们烦恼脚本或者xml文件,它使我们可以轻松创建任务。

Visual Build专业版

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

构建工具:

  • 玛文
  • SBT
  • 摇篮

持续集成服务器:

  • 詹金斯
  • 哈德森
  • 特拉维斯CI

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

我们使用它来构建.Net应用程序,并且非常容易设置,连接到TFS并从中运行其他工具。它非常优美,实际上让我想起了这个网站。发现它比CruiseControl更好,而且对于我们的团队规模来说,它是免费的。如果我们需要许多不同的版本,每个用户更多的版本,依此类推,则需要花费一些钱(但仍然很合理)。

我已经成功使用了buildbot,它是由Subversion存储库中的提交后脚本触发的。它已用于自动构建和自动测试。

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

制作出色的跨平台安装程序。

我们将Hericus Zed构建和错误管理用于我们的自动化构建。

我们有4个代码分支,每个分支带有java,c ++,C#,跨平台编译器和5个OS的安装程序。

对于我们的Windows可编译内容,我们使用FinalBuilder。

进行构建。
用于部署的Debian软件包(因为我们的生产服务器正在运行它)。

UppercuT使用NAnt进行构建,并且它非常易于使用。

对于大多数项目,自动构建就像(1)解决方案名称,(2)源控制路径,(3)公司名称一样简单!

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

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

更多信息

UppercuT是常规的自动构建,这意味着我们可以设置配置文件,然后免费获得大量功能。可以说,最强大的功能是能够在一个位置指定环境设置,并将其应用到任何地方,包括在构建源时提供的文档。

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

特征 :

  • 设置简单
  • 简单升级
  • 自定义扩展点(之前,发布和替换),用于构建过程的每个步骤http://uppercut.pbworks.com/CustomizeUsingExtensionPoints
  • 具有与Team City,CruiseControl.NET和Jenkins(以前为Hudson)集成的文档https://github.com/chucknorris/uppercut/tree/master/docs
  • 在带有单声道的Linux上工作
  • 根据内部版本号和源代码控制修订版(SVN,TFS,Git,HG)对DLL进行版本控制
  • 编译活动-F5或者Ctrl + Shift + B
  • 强大的命名使真/假变得简单
  • MbUnit v2
  • 加利奥
  • 单位
  • NCover
  • 依赖
  • 尼特里克
  • 单声道迁移分析仪
  • 混淆
  • 合并
  • 环境模板和构建(ConfigBuilder,DocBuilder,SQLBuilder,DeploymentBuilder)https://github.com/chucknorris/uppercut/blob/master/docs/ConfigBuilder.doc?raw=true
  • 打包输出以准备部署
  • 压缩输出