持续集成是敏捷软件开发的重要组成部分。从一个冲刺到下一个冲刺,技术团队在“前进”的同时不断推出各种增量功能。然而,当开发人员高度专注于添加功能时,代码错误有时会意外出现并导致软件无法正常运行。为了防止此类错误被集成到软件配置管理(简称SCM)解决方案中,持续集成服务器充当了看门人的角色,帮助我们检查代码的质量。即使错误的代码已经集成到SCM中,持续集成服务器仍然可以快速告诉我们哪里出了问题。在今天的文章中,我们将共同了解六款开源的持续集成服务器工具,相信它们可以帮助你解决自己敏捷系统中的各种常见问题。JenkinsProjectPageSourceCodeLicense:MITJenkins诞生于ProjectHudson发布和SunMicrosystems收购之间。Jenkins使用Java语言开发,下载WAR文件后使用java–jarjenkins.war命令安装。您也可以将其部署在servlet容器中。Jenkins的主要任务分为以下两种:软件项目的持续构建/测试和运行任务的外部监控。对于前者,Jenkins支持一系列SCM工具——包括Git、Mercurial、SubversionbeforeClearcase等。您可以基于此项目构建ApacheAnt和ApacheMaven以及其他shell脚本,或者使用Windows批处理文件完成各种构建前/后操作。请注意,几乎所有配置都可以通过基于Web的GUI完成。Jenkins也可以作为第三方供应商的服务解决方案,但是如果你有相当多的软件需要测试,那么运行在我们自己的服务器上可能更合适——这样不仅可以保证你在基础设施问题具备完善的管控能力,同时帮助企业客户保障软件安全等级。Buildbot项目页面源代码许可协议:GPLv2Buildbot作为一个使用Python语言开发的项目,基于Twisted框架构建。它最初是作为Tinderbox项目的回退,但现在得到了Mozilla、Webkit、Chromium和许多其他项目的支持。Buildbot安全需要一台或多台主服务器加上多台从服务器。主服务器负责监控源代码库的变化,协调各从服务器的运行活动,并将结果报告给用户和开发者。从服务器可以运行各种不同的操作系统。您需要向主服务器提供一组Python配置脚本来完成Buildbot的配置。这对于非程序员用户来说可能有些困难,但此类脚本的存在也让Buildbot更加灵活。这种设置机制的指导思想是,目前大多数持续集成工具在设计和选项上都受到工具包的严格限制。但是混合语言应用程序或复杂的发布任务等用例可能会超出开发人员的预先假设。Buildbot旨在让大家随着具体需求的变化来安装它,由简单到复杂来满足用户的实际情况。TravisCI项目页面源代码许可协议:MITTravisCI可能是最适合初学者作为入门平台的持续集成服务器解决方案。TravisCI是开源的,可以免费托管在我们自己的服务器上。不过值得一提的是,它还提供了SaaS版本,旨在帮助您以免费的方式测试开源项目。整个安装过程非常简单,我们只需要访问自己的GitHub账号,提供相关权限,根据项目实际需求更新travis.yaml文件即可。将文件提交到GitHub后,可以构建一个新的TravisCI。StriderProjectPageSourceCodeLicenseAgreement:BSDLicenseStrider使用Node.JS和JavaScript编写,并利用MongoDB作为后备存储机制。在安装Strider之前,我们必须先安装MongoDB和Node.JS。您可以使用npminstallstrider命令进行安装。然而,Strider最大的特点是它可以定制。我们可以编写插件来增强它的功能——当然,这并不是坏事,但是如果你想快速上手而不需要编程的话,如果没有有效的解决方案,那么最好还是优先考虑其他项目。Go项目页面源代码许可证:Apachev2Go是由ThoughtWorks创建的开源项目。与其他高级持续集成服务器一样,Go还允许您将构建分发到许多不同的系统并以集中方式监控它们。要使用Go,您需要将它安装在您自己的服务器上——它不提供任何SaaS选项。借助Go,我们可以以流水线的方式实现各种周期性的执行任务,这些操作中的实例将被称为作业。另外值得一提的是能够使用价值流图可视化整个持续交付过程。生成的图表可帮助我们跟踪从提交到部署的特定更改。Integrity项目页面源代码许可证:MIT由于使用Ruby编写,Integrity需要Ruby1.8.7或更高版本、RubyGems1.3.5或更高版本以及Git1.6或更高版本才能正常运行。它不提供SaaS选项,您需要在本地安装它才能使用它。整个配置工作可以通过“init.rb”文件来实现。该文件的示例在项目的官方页面上提供。还有一点需要特别强调的是,Integrity目前只能和Git合作。所以如果你正在使用其他的SCM工具,那么Integrity可能不适合你。原标题:6个顶级持续集成工具Nuka-Cola翻译
