多种持续集成工具全面比较

来源:互联网 发布:单片机按键启停led灯 编辑:程序博客网 时间:2024/06/05 20:42

        现在随着持续集成的广泛使用,也出现了很多支持持续集成的工具。由于有许多持续集成服务(CI)服务器可以选择,包括商业的和开源的。

        虽然这些工具都试图自动进行软件构建的过程,但是都有各自的优点和不足。而且,有太多工具可供选择的不良后果就是很难决定究竟应该选择使用哪个。

        在选用自动化过程的工具时,要时刻记住的就是:工具要确实适用。选择错误的工具可能会限制整体的灵活性,会导致执行简单动作反而需要更长时间,或者会把人锁定在特定的支持工具或过程。

用java实现的持续集成的开源工具有

 CruiseControl  http://cruisecontrol.sf.net/

Continuum   http://maven.apache.org/continuum/

Anthill  http://www.anthillpro.com/e/giant-ci-matrix-os

LuntBuild    http://luntbuild.javaforge.com/

Gump   http://jakarta.apache.org/gump/

 

更多工具的比较请见下面的图表:

图例说明:

  当前版本已经实现
  当前版本已经实现,但是还存在Bug或未经测试
计划在下一个版本实现
该功能没有实现

  CruiseControl CruiseControl.NET DamageControl Drumbeat CI Tinderbox & Tinderbox2 BuildBot Anthill Professional Anthill BeetleJuice Luntbuild professional LuntBuild Gump Draco.NET Continuum Sin Parabuild Server Tinderbox3  Pulse TeamCity Project info                                     EAP Project origin ThoughtWorks ThoughtWorks ThoughtWorks  Timpani Software

Mozilla Project ? Urbancode Urbancode ? PMEase PMEase ? ? Apache CSH Consult Viewtier Systems John Keiser  Zutubi JetBrains Open Source

  +OpenAPI Implementation language Java C# Ruby  C# Perl Python Java Java Java Java Java Java C# Java C# Java Perl  Java Java Free   Free 2-user version

Free for Open Source Projects Free for Open Source Projects Free for Open Source Projects   Free for Small Teams and Open Source Projects

Free for Open Source Projects Issue tracker JIRA JIRA JIRA  ? Bugzilla ? private JIRA ? Supports SourceForge ? ? JIRA Official support Bugzilla  Jira Jira Online demo here here openauthenticated  here Working implementation ?

request  

? here Use demo/domo ? ? Working implementation on Codehaus

here Eval download Working implementation

coming soon Online Demo Number of active developers 5 2 3  5 ? ? ? ? ? ? 2 ? ? 4 1 ? ?  2 5~7 SCM support                                       AccuRev ?   ? ? ? ? ?

AlienBrain ?  ? ? ?



? ? ? ? ? ? ? ? ?

Bazaar ?  ? ? ?



? ? ? ? ? ? ? ? BitKeeper ?  ? ? ?

? ? ? ? ? ? ? ? ? ClearCase   ?

? ? ? CA Harvest ?  ? ? ?

? ? ? ? ? ? ? ? ?

CM Synergy ?  ? ? ?



? ? ? ? ? ? ? ? ? CVS   ? ? ? ? Dimensions ?  ? ? ?

? ? ? ? ? ? ? ? ?

"File system SCM"   ? ? ? ? HTTP file  ? ? ? ? ? MKS   ? ? ? ? ?

Perforce (p4)   ? ? ? ? PVCS   ? ? ? ? ?



SourceGear Vault   ? ? ? ? ?

StarTeam   ? ? ? ?



Subversion   ? ? ? ?   Surround   ? ? ? ? ?

Team Foundation Server ? (via plugin) ? ? ? ? ? ? ? ? ? ? ? ? ? ? VSS   ? ? ? ?



VSS Journal   ?



? ? ? ?

SCM related support                                       SCM filtering   ? ? ? ? ? Multi-SCM   ? about ? ? ? ? Can create new SCM repositories Via web admin  ? ? ? ? ?

Build management                                       Parallel builds (ability to build several projects simultaneously)   ? ? ? ?   Distributed builds   ? ? ? ? Agents' code auto-updated ? ? ?  ? ?



? ? ? ? ? ? ? ? Manually force builds   Email ? ? ? ? Not needed   SCM trigged builds (if supported by SCM) (if supported by SCM)   ? ? ? ? SCM poll based builds   Tinderbox2 ? ? ? ?

Temporal build scheduling   ? ? ? ? Builds promotion ? ?   ? about ? ? ?   Interproject Dependencies ? ? ? ? ? ? ? ? ? ? ? ? ? Builds deletion ? ?  ? ? ? ? ? ? ?

Reproduce history builds ? ?  ? ? ? ? ? Proactive (can prevent build breakages) ? ?   ? ? ? ? ? ? ? Detect new failing tests while build ? ? ? ? ? ? (via report) ? ? ? ? ? ? ? ? ? ? Notify when first test in build fails ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Security                                       User authentication Apache recommended   For management ? ? ? ? For management

User authorization schemes   ? ? ? ? ? Database

Admin/ Developer/Guest LDAP Integration ?   ? ? ? ? ? ?

? Kerebos ? ?

?

?

?

?

? ? ?

?

?

? ?

?

? ?

?

Single Sign On ?

?

?

?

?

?



?

?

?

?

?

?

?

?

?

?

?

Custom JAAS ? ?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Publishing                                       Confluence  ? ? ? ? ? ? Email   ? ? ? ? Run executable   ? ? ? ? FTP   ?



? ? ?

IRC  ? ?



? ? ?

Jabber  ? ?



? ? ? Lotus Sametime   ?



? ? ?

NetSend   ?



? ? ?

ProjectStart   ?



? ? ?

RSS   ?



?   ? ?

SCP  ? ?   

? ? ?

Windows System Tray   ?



? ? ?

Formatted Logging XML XML YAML   (In Relational Db)

? ?  Xml, Html  ? ?   (In DB) Yahoo Messenger  ? ?  

? ?



MSN Messenger ? ? ?  ? ?



? ? ?

X10   ?



? ? ? ?

Web interface                                       View changesets   Bonsai ? ? ? ? Bonsai Add new projects   "Tree" only ? ? ? ? "Tree" only

Clone projects   ? ? ? ? ? Delete projects   ? ? ? ? Modify projects   ? ? ? ? Kill builds   ? ? ? ? Pause builds   ? ? ? ? Access to build artifacts   ? ? ? ?

Browse CI's working copy  ? ? ? ? ? Delete CI's working copy  ? ? ? ? ? Search in builds   ? ? ? ? ?

Historic graphs   ? ? ? ? Self-updating web page   ? ? ? ? Ajax Multi project support   ? ? ? ? Multi project view   ? ? ? ? Add/remove agent machines (for distributed builds) ? ? ?  ? ?

? ? ? ? ? ? ? Directly supported build tools                                       Shell / command script   ? ? ? ? Ant   ? ? ? ? Groovy NAnt   ?

? ? ?



Maven   ? ? ? ? Maven2  

 

Make   ? ? ? ? ? Visual Studio ('devenv')   ? about ? ? ? ?

Tools integration                                       ViewCVS  ? ? ? ? ? Fisheye   ? ? ? ? Bonsai ? ? ?   ?



? ? ? ? ? ? ? ? Bugzilla   ? ? ? ?

Scarab   ? ? ? ? ? Trac  ? ? ? ? ? ? ?

sourceforge.net  ? ? ? ? ? ? ? rubyforge.org  ? ? ? ? ? ? ? JIRA   ? ? ? ?

Confluence   ? ? ? ? ClearQuest ?

?

?

?

?

?





? ?

?

?

?

?

?

?

?

?

?

JUnit result rendering   ? ? ? ? NUnit result rendering   ? ? ? ? Clover result rendering

? ?

?

?

? ? ? ? ? ? ? ? ? ? ? (/)about Selenium result rendering

? ? ? ? ? ?

? ? ? ? ? ? ? ? ? (/)about IntelliJ Plugin  ? ? ? ? ? Eclipse Plugin   ? ? ? ? VS 2005 Plugin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Remote Management API                                       SOAP   Asynchronous Messaging

? ? ? ? ?

XML-RPC  n/a ? ? ? ? JMX N/A N/A  n/a ? ? ? ? Hessian ? ?  n/a ?



? ? ? Client Library ? ? ? ? ? ? about ? ? ? ? ? ? ? ? ? ? ? OpenAPI Eclipse ALF ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Installation and Configuration                                       Windows installer   ? ? ? ? Self contained distribution (except SCM clients)   ? ?   ? ? Additional dependencies JRE, SCM client .NET Runtime, IIS, SCM client SCM client  .NET Runtime, SQL Server (MSDE Included in distribution)

Perl, CVS ? JRE, SCM client JDK, Servlet container, SCM client ? jdk, SCM client jdk,tomcat,SCM client ? ? JRE, SCM client Subversion, .NET runtime/IIS or Mono/XSP Perl, CVS, SCP JDK, some SCM clients

Some SCM clients Execution platform JVM Windows, .NET, Mono

Ruby  Windows, .NET, Mono

Perl ? JVM JVM ? JVM JVM ? ? JVM Windows, Linux Windows, Unix, Linux, Mac OS X, Solaris, HP UX Perl  JVM JVM Project platform (what it can build) Java + anything Ant/Maven/NAnt can build .NET or anything with a command line interface build Any language  Any language

Any language ? Any language Any language with supplied ant wrapper ? Any language Any language with supplied ant wrapper ? ? Any language Any language Any language (i)Any language Any Language  Any Language Preferred build tool Ant, Maven Nant Any build tool  NAnt

Make ? Any build tool Ant ? Any build tool Ant, Maven ? ? Maven 2 Any build tool Any build tool Make Any build tool  Any Requires modifications to build scripts NO NO NO  NO ? NO NO ? NO NO ? ? NO NO NO NO NO Supports multiple projects   ? ? ? ? Automatic configuration from build script   Maven only

Text file configuration XML XML YAML  Stored in SQL Db - XML input/export coming soon

? XML import/export.

Database backend  ? ? ?

XML configs for projects

 

转自: http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix