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

Jua*_*uis 263 continuous-integration jenkins travis-ci

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

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

Tho*_*eil 286

Travis-ci和Jenkins虽然都是持续集成的工具,但却截然不同.

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

特拉维斯没有像詹金斯那样的工作.运行以测试代码的命令取自名称.travis.yml位于项目代码中的文件.这使得每个分支都可以轻松拥有不同的测试代码,因为每个分支都可以拥有自己的.travis.yml文件版本.

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

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

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


怎么选择?

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

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

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

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

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

你得到的功能是:

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

  • 根据我的经验,使用Jenkins而不是Travis也可以省去很多麻烦(`.travis.yml`!)我有几个github项目,我正在运行我自己的Jenkins,我不会后悔.如果你有能力运行自己的Jenkins,我会非常鼓励你选择.很高兴100%控制您的CI环境. (23认同)
  • Jenkins Pipeline插件(在大多数情况下用于替换自由式项目)允许将管道groovy脚本放置在项目中的文件(通常名为"Jenkinsfile")中,从而允许它具有相同的功能.上面的Travis-CI,以及Jenkins团队支持的额外奖励. (17认同)

ram*_*omu 45

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

为项目设置CI

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

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

詹金斯:

  1. 创造一个环境(詹金斯大师)
  2. 创建Web挂钩
  3. 配置每个作业(与Travis相比需要时间)

重新运行构建

Travis:任何在GitHub上具有写访问权限的人都可以通过单击`restart build重新运行构建

詹金斯:根据短语重新运行构建.您在PR /提交描述中提供短语文本,例如reverify jenkins.

控制环境

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

詹金斯:一次性安装.在节点/从机上安装所有必需的软件,然后在预安装的环境中构建/测试.

构建日志:

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

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


app*_*ech 28

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

简单的设置步骤:

  1. 应该有GITHUB帐户并使用您的GITHUB帐户在Travis CI网站注册.
  2. .travis.yml在项目的根目录中添加文件.在存储库设置页面中添加Travis作为服务.

现在每次进入您的存储库时,Travis都会构建您的项目.您可以按照简单的步骤开始使用Travis CI.

  • 使用Travis CI进行开源的一个警告:它在Linux或OSX上运行其构建和测试,而不是Windows.因此,如果您的项目是.NET或PowerShell,则需要使用跨平台版本的.NET(Mono或.NET Core)或PowerShell(PowerShell Core)编写,以便您能够使用Travis CI .一个更友好的Windows托管CI工具是[Appveyor](https://www.appveyor.com).. (5认同)