詹金斯 vs Travis-CI。对于开源项目,您会使用哪一个?

Jenkins vs Travis-CI. Which one would you use for a Open Source project?

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

您会为开源项目使用哪一个?两者的主要好处或优势是什么?

Travis-ci 和 Jenkins,虽然都是持续集成的工具,但有很大的不同。

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

Travis 没有 Jenkins 中的 jobs。 运行 测试代码的命令取自名为 .travis.yml 的文件,该文件位于您的项目代码中。这使得每个分支都有不同的测试代码变得容易,因为每个分支都可以有自己的 .travis.yml 文件版本。

如果您使用以下插件之一,您可以在 Jenkins 中获得类似的功能:

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

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


如何选择?

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

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

  • in-house → 詹金斯或 gitlab-ci
  • Github.com→Travis-CI

要在 github 项目上设置 Travis-CI,您只需:

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

您获得的功能是:

  • Travis 将 运行 测试你对你的 repo 所做的每一次推送
  • Travis 将 运行 您对每个拉取请求贡献者的测试

我建议将 Travis 用于开源项目。配置和使用都很简单。

简单的设置步骤:

  1. 应该 GITHUB account and register in Travis CI 网站使用您的 GITHUB 帐户。
  2. 在项目的根目录中添加 .travis.yml 文件。在您的存储库设置页面中将 Travis 添加为服务。

现在,每次您提交到您的存储库时,Travis 都会构建您的项目。您可以关注 simple steps to get started 和 Travis CI。

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

项目的设置CI

Travis 位居第一。它很容易设置。使用 GitHub.

设置不到一分钟
  1. 登录GitHub
  2. 为 Travis 创建 Web 挂钩。
  3. Return 至 Travis,并使用您的 GitHub 凭据登录
  4. 同步您的 GitHub 存储库并启用推送和拉取请求。

詹金斯:

  1. 创建环境(Jenkins 大师)
  2. 创建网络挂钩
  3. 配置每个作业(与 Travis 相比需要时间)

重新运行构建

Travis:任何对 GitHub 具有写入权限的人都可以通过单击“重新启动构建

重新运行构建

Jenkins: Re-运行 基于短语构建。您在 PR/commit 描述中提供短语文本,例如 reverify jenkins

控制环境

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

詹金斯: 一次性设置。在 node/slave 机器上安装所有必需的软件,然后在预安装的环境中 builds/tests。

构建日志:

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

Jenkins:易于使用构建工件插件进行设置。