詹金斯vs特拉维斯-CI。您将在开源项目中使用哪一个?

时间:2015-09-06 09:58:40

标签: jenkins continuous-integration travis-ci

对于我的项目,我需要在Jenkins和Travis-CI之间做出选择。我多年来一直在使用Jenkins,但我也读过关于Travis-CI的好评。

您将在开源项目中使用哪一个?两者的主要好处或优点是什么?

3 个答案:

答案 0 :(得分:270)

Travis-ci和Jenkins,虽然两者都是持续整合的工具,但却非常不同。

Travis是托管服务(免费用于开源),而您必须托管,安装和配置Jenkins。

Travis没有像詹金斯那样的工作。运行以测试代码的命令来自名为<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:tileMode="repeat" /> 的文件,该文件位于项目代码中。这使得每个分支可以轻松拥有不同的测试代码,因为每个分支都可以拥有自己的.travis.yml文件版本。

如果您使用以下插件之一,则可以使用与Jenkins类似的功能:

  • Travis YML Plugin - 警告:似乎不受欢迎,可能与真正的特拉维斯相比并不完整。
  • Jervis - 修改Jenkins以使其读取从项目代码根目录中找到的.travis.yml文件创建作业。如果.jervis.yml不存在,则会改为使用.jervis.yml文件。

您还可以考虑进行持续集成的其他托管服务(非详尽列表):

如何选择?

您可能希望与Jenkins保持联系,因为您熟悉它或者不想依赖第三方进行持续集成系统。 否则我会放弃Jenkins并使用其中一个免费的托管CI服务,因为它们可以为您节省很多麻烦(主机,安装,配置,准备工作)

根据托管代码存储库的位置,我会做出以下选择:

  • 内部→Jenkins或gitlab-ci
  • Github.com→Travis-CI

要在github项目上设置Travis-CI,您所要做的就是:

  • 在项目的根目录中添加.travis.yml文件
  • 在travis-ci.com创建一个帐户并激活您的项目

您获得的功能是:

  • Travis将针对您的回购中的每次推送运行测试
  • Travis将对贡献者提出的每个拉取请求进行测试

答案 1 :(得分:37)

我在Travis和Jenkins上工作过:我将列出两者的一些特征:

项目的CI设置

特拉维斯排在第一位。它很容易设置。使用GitHub设置不到一分钟。

  1. 登录GitHub
  2. 为Travis创建Web挂钩(编辑:
  3. 返回Travis,使用您的GitHub凭据登录
  4. 同步您的GitHub存储库并启用推送和拉取请求。
  5. 詹金斯:

    1. 创建环境(詹金斯大师)
    2. 创建网络摘要
    3. 配置每项工作(与Travis相比需要时间)
    4. 重新运行构建

      Travis:任何对GitHub具有写访问权限的人都可以通过点击`restart build

      重新运行构建

      Jenkins:根据短语重新运行构建。您可以在PR / commit描述中提供短语文本,例如reverify jenkins

      控制环境

      Travis: Travis提供托管环境。它为每个构建安装所需的软件。这是一个耗时的过程。

      Jenkins:一次性设置。在节点/从机上安装所有必需的软件,然后在预安装的环境中构建/测试。

      构建日志:

      Travis:支持构建日志以放置在Amazon S3中。

      Jenkins:使用构建工件插件轻松设置。

答案 2 :(得分:26)

我建议Travis开源项目。配置和使用起来非常简单。

简单的设置步骤:

  1. 应该拥有GITHUB帐户,并使用您的GITHUB帐户在Travis CI网站注册。
  2. 在项目的根目录中添加.travis.yml文件。在存储库设置页面中添加Travis作为服务。
  3. 现在每次进入您的存储库时,Travis都会构建您的项目。您可以使用Travis CI跟踪simple steps to get started