我们使用什么工具进行自动构建/自动部署?为什么?
我们使用什么工具进行自动构建/自动部署?为什么?
我们推荐什么工具?
解决方案
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
- 打包输出以准备部署
- 压缩输出