Jenkins是初创公司的首选,因为它可以免费使用、支持广泛的插件、并且提供一个活跃的社区供开发人员和测试人员交流。开发人员有机会在Jenkins中设置CI/CD环境。Jenkins可用于广泛的平台——Windows、macOS和各种类型的Unix(即Ubuntu、OpenSUSE等)。
Jenkins的另一个主要特点是它的插件可扩展性。与其他开源项目一样,Jenkins维护着两条发布线——每周发布和LTS(长期支持)。
Jenkins的显著特点:
开源且免费使用;
广泛的插件生态系统;
充满活力的社区环境;
支持并行执行;
易于设置;
提供REST API;
可以使用Jenkinsfile进行配置。
二、什么是Travis CI?
在所有CI/CD工具中,Travis CI无疑是最受欢迎的选择之一。最初,它是为开源项目创建的,但随着时间的推移,该工具也已迁移到闭源项目。和Jenkins一样,Travis CI也是CI/CD工具市场的早期参与者之一。
该工具是用Ruby编写的,由Travis CI社区开发和维护。Travis CI早期仅可用于GitHub托管项目,但现在它也支持Bitbucket托管项目。
它适用于Linux、macOS和Windows(早期)操作系统。Travis CI对每个开源项目都是免费的。要使用Travis CI,你应该在GitHub或Bitbucket上注册一个帐户。无需安装,你只需注册并添加项目即可开始使用。
Travis CI的显著特点:
免费用于测试开源应用程序;
可用于持续交付(CD)和持续集成(CI);
适用于macOS、Linux、Windows(早期阶段);
支持大约30种不同的编程语言,如Ruby、Perl、Python、Scala等;
添加 .travis.yml文件(即YAML格式的文本文件)后可以配置;
该工具支持与外部工具集成;
支持构建矩阵功能以加速项目执行。
三、Travis CI与Jenkins的比较项
1.设置和安装
(1)Jenkins:Jenkins是一个独立的Java程序,安装即可无缝运行。如果预先安装了Java和Tomcat服务器,那么安装Jenkins总共涉及三个主要步骤。Jenkins可用于Windows、Unix和macOS平台。
Jenkins可以与Docker结合,以提高自动化测试的速度和一致性。Jenkins可以在Java容器(如 GlassFish和Apache Tomcat)中作为servlet运行。
(2)Travis CI:使用带有云托管代码存储库的Travis CI工具不需要进行任何安装。但是,必须满足以下前提条件:
拥有GitHub或Bitbucket的帐户;
要通过GitHub才能使用Travis CI,开发人员需要在Travis上注册GitHub;
从Travis设置页面启用用于测试的存储库,并将.travis.yml(YAML文本文件)添加到根目录。
Jenkins的设置和安装过程很简单,只需几个步骤即可完成安装。如果你使用GitHub或 Bitbucket,Travis CI是首选工具之一,因为它可以与各个平台集成。当任何更改推送到存储库时,它会自动运行测试套件。
2.便于使用
(1)Jenkins:Jenkins的重点一直是功能而不是可用性,但这并不意味着它对用户不友好,因为文档详尽到足以开始使用Jenkins。Jenkins的升级过程也简单直接,所有配置都存储在一个简单的XML文件中,管理员可以直接从文件系统编辑。因此,更改可以在多个Jenkins项目中快速传播,而不是从UI执行相同操作。
(2)Travis CI:由于与GitHub紧密集成,Travis CI是许多开源项目的首选CI/CD工具,为了便于监控,测试结果会显示在GitHub UI上。
3.并行执行
Travis CI支持并行测试,它还可以与Slack、HipChat、电子邮件等工具集成,并在构建失败时收到通知。开发人员可以通过跨不同虚拟机并行执行多个构建来加速他们的测试套件。
对于并行测试,你需要对.travis.yml文件进行更改以充分利用你帐户的可用容量。你可以在单个VM(虚拟机)或多个VM上为RSpec、Cucumber或Minitest执行并行构建。
Parallel Test Executor Plugin用于使用Jenkins进行并行执行。由于不同的构建共享相同的环境,你可能会遇到Jenkins中并行构建的问题,尤其是在访问文件系统等共享资源时。并行构建是CI/CD工具不可或缺的一部分,在Travis CI与Jenkins的比较中没有明显的赢家。
4.应用程序和插件生态系统
(1)Jenkins:Jenkins是一个拥有大量插件生态系统的开源项目,正蓬勃发展。目前,Jenkins 提供了1500多个插件,每个插件都支持构建、部署、自动化。
(2)Travis CI:Travis CI支持21种编程语言,例如C、C++、Java、Perl、PHP、Python、R、JavaScript(使用 Node.js)等。根据你的语言偏好,你可以为Travis CI下载社区开发的应用程序。
就应用程序和插件生态系统而言,Jenkins显然是赢家,因为它拥有足够的社区支持,截至2020年7月,Jenkins有628名贡献者,而Travis CI只有102名。
5.第三方(和云)集成
(1)Jenkins:与Travis CI一样,Jenkins也支持与流行的云平台集成,可以使用插件完成集成。
(2)Travis CI:Travis CI是一个基于云的CI服务器,你可以在其中添加托管在其他服务器(GitHub和 BitBucket除外)上的存储库作为子模块。如果源代码是公开的,可以免费使用Travis CI。
Travis CI内置了AWS、Azure、Google Cloud等流行云提供商的插件。当涉及到将新的GitHub 项目与旧的项目集成时,这些插件就派上用场了。它们还可用于在各种GitHub事件上运行构建和配置构建参数。
6.特点和能力
(1)Jenkins:Jenkins易于使用,可以使用插件进行定制。社区是Jenkins的支柱,如果你想使用在社区支持下蓬勃发展的CI/CD工具,你应该选择Jenkins。
(2)Travis CI:考虑到Travis CI广泛用于开源项目,与GitHub的开箱即用集成是Travis CI的主要优势之一。另一方面,当你尝试将Travis CI与除GitHub之外的任何控制平台集成时,它会变得更加复杂。无论是与浏览器(或命令行客户端)一起使用,该工具都具有现代UI和良好的体验。
尽管Jenkins和Travis CI支持开源和专有存储库,但专有存储库的产品略有不同。如果你打算构建和测试GitHub上可用的私有存储库,则需要升级到Travis CI Enterprise(或付费版本)。Travis CI有一个用户友好的GUI,这使得它非常易于使用。
四、Travis CI与Jenkins:你应该选择哪种 CI/CD 工具?
从Travis CI与Jenkins的比较中可以清楚地看出,这两种产品都具有非常好的功能。如果你使用GitHub进行版本控制,那么Travis CI比Jenkins具有优势,因为它与GitHub紧密集成。另一方面,Jenkins经过多年的开发和使用,也被初创公司(和大型企业)使用。除了功能之外,在筛选CI/CD工具时,你还应该查看定价,这同样适用于Travis CI与Jenkins的情况。
参考文章:https://www.lambdatest.com/blog/travis-ci-vs-jenkins/
文章标签: 测试工具