Travis CI 与 Jenkins – 它们之间的区别
Travis CI 与 Jenkins 的主要区别
- Travis CI 是一款商业 CI 工具,而 Jenkins 是一款开源工具。
- Travis CI 入门非常快,而 Jenkins 需要精心设置。
- Travis CI 提供的自定义选项较少,而 Jenkins 为用户提供了广泛的自定义选项。
- Travis CI 有一个 YAML 配置文件,而 Jenkins 为用户提供了完整的配置选项。

什么是 CI?
持续集成 (Continuous Integration) 是一种软件开发方法,团队成员至少每天集成一次他们的工作。在此方法中,每次集成都会由自动构建进行检查,以查找错误。CI 概念最初是在二十多年前提出的,目的是避免“集成地狱”,即集成被推迟到项目结束时。
什么是 Travis CI?
Travis CI 是第一个 CI 服务工具。它引入了在云中构建代码的新方法。这个 CI 工具允许用户注册、链接他们的存储库、构建以及测试他们的应用程序。
Travis CI 工具可以轻松地与 GitHub 和 Bitbucket 等常用云存储库集成。它提供了许多自动 CI 选项,无需专用服务器,因为 Travis CI 服务器托管在云中。这允许您在不同的环境中、在各种机器上、在不同的操作系统上进行测试。
Travis CI 对开源项目是免费的。对于商业项目,您需要购买企业计划。
什么是 Jenkins?
Jenkins 是一款屡获殊荣的持续集成工具,可监控部署周期的执行情况。它最初是 Sun 公司的工程师团队的一个副项目。后来,它发展成为最受欢迎的开源 CI 工具之一,帮助软件开发团队自动化其部署。
Jenkins 是一款基于 Java 的工具,这意味着您只需要 Java 运行时环境即可运行它。因此,Jenkins 可以在任何运行 Java 的操作系统上安装。
在此工具中,开发人员还可以为自定义构建指定条件。Jenkins 支持庞大的插件库。这允许开发人员更改 Jenkins 的外观和操作方式。
此外,Jenkins Pipeline 插件套件附带了特殊工具,允许开发人员使用 DSL(领域特定语言)方法来建模从简单到复杂的交付管道。
Travis CI 与 Jenkins 的区别
以下是 Travis CI 与 Jenkins 的主要区别
参数 | Jenkins | Travis |
---|---|---|
费用 | Jenkins 是免费的。但是开发团队需要运行和维护他们自己的专用服务器。这可以被视为额外的开销。 | Travis CI 企业版起价为每月 129 美元。成本根据您所需的支持级别而增加。 |
设置时间 | Jenkins 需要精心设置。因此,您需要等待很长时间才能完成安装。 | 入门非常快。创建一个配置文件即可开始集成。 |
性能 | 如果您正在寻找一个具有无限自定义选项的 CI 工具,那么 Jenkins 是您的最佳选择。 | 如果您从事开源项目,Travis CI 是最佳选择。 |
工具类型 | 这是一个开源的免费使用工具。 | 这是一个商业 CI 工具 |
用途 | 易于使用 | 使用灵活 |
Github | 适合 Github | 非常适合 Github |
支持 | 来自社区的广泛支持。 | 社区支持有限。 |
优点 |
|
|
缺点 |
|
|
使用计划 | 免费 | 对开源项目免费。但企业版收费。 |
服务器机器 | 基于服务器 | 基于云 |
定制选项 | 更多 | 更少 |
配置 | 完全可自定义 | YAML |
系统控制 | 完全 | 非常少 |
CI 如何工作?
- 开发人员编写代码并将更改提交到共享存储库
- 之后,CI 服务器会监视存储库并评估所有更改
- CI 构建系统并进行集成和单元测试
- 服务器发布可部署的构件
- 持续集成服务器为版本和构建的代码分配构建标签
- 然后 CI 服务器向团队报告成功的构建。如果测试失败,服务器会向开发团队发出事件警报。团队将尽快修复问题。
Travis 做什么?
Travis CI 提供以下优势
- 您可以监控 GitHub 项目
- 快速运行测试并生成结果。可以并行执行测试。
- 构建构件并检查代码质量
- 轻松部署到云服务
- 它可以识别代码的少量和大量更改。
- 开发人员可以使用 Travis CI 来监视正在运行的测试。
- 该工具与 Slack、HipChat、Email 等集成。
Jenkins 做什么?
Jenkins 允许您自动化构建、测试和部署任务。该工具支持 Windows、Mac OSX 和 Linux 系统等不同操作系统。
此外,Jenkins 使您能够快速构建和测试代码,以尽早了解其是否已准备好进行生产。在大多数情况下,Jenkins 需要根据您团队的自定义要求进行一些修改。
Travis CI 功能
- 自动集成 GitHub
- 存储库访问以构建拉取请求
- 支持 21 种语言,如Android、C、C#、C++、Java、JavaScript(带 Node.js)、Perl、PHP、Python、R、Ruby 等。
- 预装的构建和测试工具
- 可用服务 – 数据库、消息队列等。
- 部署到多个云服务
- 加密安全的环境变量或文件
- 每次构建后重新创建虚拟机
- 用于脚本编写的 CLI 客户端和 API
- 提供免费的基于云的托管,无需维护或管理。
Jenkins 功能
- 易于安装、升级和配置
- 分布式构建
- 监控外部作业
- 超过 600 个插件可自定义您的 Jenkins 环境
- GitHub 上有 1000 多个公共存储库,500 多名贡献者,活跃的提交活动
- 支持各种身份验证方法、版本控制系统、通知等。
- Jenkins 提供远程访问 API 及其功能。
- 为大型项目提供强大的 CI/CD 工具
- 它支持各种作业模型,如 Freestyle、Pipeline 等。
- 允许开发人员添加他们的扩展
- 与 Docker、Libvirt、Kubernetes 以及许多其他程序兼容
受欢迎程度指数
Stack Overflow 中标记的 Jenkins vs Travis CI 问题数量
哪个更好?
因此,通过以上讨论,我们可以说 Travis 或 Jenkins 都提供了出色的功能。但是,小型开源项目最适合 Travis CI,因为它易于运行且设置快速。另一方面,大型企业最适合 Jenkins,因为它为私有项目提供免费许可和广泛的可自定义功能。因此,我们可以说 Jenkins 和 Travis 持续集成工具都各有优势。