转载注明出处,欢迎关注微信小程序小白AI博客
微信公众号小白AI
或者网站 https://xiaobaiai.net或者我的CSDN https://blog.csdn.net/freeape
1 什么是CI?
持续集成是一种软件开发方法,团队成员可以在一天内至少整合一次他们的工作。在此方法中,每个集成都由自动构建检查并检索错误。CI概念最初是在20多年前引入的,以避免“集成地狱”,这种情况发生在集成推迟到项目结束时。
在本节中,你将学会:
- 什么是CI?
- 什么是Travis CI?
- 什么是Jenkins?
- Travis能做啥?
- Jenkin能做啥?
- Travis CI特点
- Jenkin特点
- Travis vs Jenkin
- 人气指数
- 哪个更好?
2 CI是如何工作的?
- 开发人员提交代码到代码管理仓库
- 然后,CI服务器监视代码仓库并评估所有提交
- CI编译项目并进行集成和单元测试
- 服务器发布可部署的软件部件
- 持续集成服务器为版本和构建代码分配构建标记
- 然后CI服务器向团队报告成功构建。如果测试失败,服务器会向开发团队发出有关该事件的警报。团队将尽可能快地解决问题。
3 什么是Travis CI?
Travis CI是第一个CI,并作为一个服务性工具。它引入了一种在云中构建代码的新方法。此CI工具允许用户注册,链接其存储库,构建以及测试其应用程序。
Travis CI工具可以轻松地与GitHub和Bitbucket等常见云存储库集成。它提供了许多自动CI选项,因为Travis CI服务器托管在云中,因此无需专用服务器。这允许你在不同的环境中,在不同的机器上进行测试,在不同的操作系统上运行。
Travis CI对开源项目是免费的。对于商业项目,您需要购买企业版本。
4 什么是Jenkins?
Jenkins是一款屡获殊荣的持续集成工具,可监控部署周期的执行情况。它起初是Sun软件工程师小组的一个副项目。后来,它被扩展为流行的开源CI工具之一,可帮助软件开发团队自动化部署。
Jenkins是一个基于Java的工具,这意味着你只需要有Java Runtime Environment就可以运行它。因此,Jenkins可以安装在运行Java的任何操作系统上。
在此工具中,开发人员还可以为自定义构建指定条件。Jenkins支持大量的插件存档。这允许开发人员改变Jenkin的外观和操作方式。
此外,Jenkins Pipeline
插件套件还带有特殊工具,允许开发人员使用编程的方式对易于复杂的交付管道进行建模。
5 Travis能做啥?
Travis CI提供以下好处:
- 你可以监控Github项目
- 运行测试并快速生成结果,可以执行并行测试。
- 构建工件并检查代码质量
- 轻松部署成云服务
- 可以识别小代码和大代码更改。
- 开发人员可以使用Travis CI在运行时观察测试
- 该工具集成了Slack,HipChat,Email等。
6 Jenkins能干啥?
- Jenkins允许您自动化构建,测试和部署任务。该工具为Windows,Mac OSX和Linux系统等不同操作系统提供支持。
- 此外,Jenkins能够快速构建和测试代码,以便及早获得有关是否已准备好生成的反馈。在大多数情况下,Jenkin将根据团队的自定义要求进行少量修改
- 同样的支持大量插件,也可以实现邮件通知等功能
7 Travis CI特性
- 与GitHub自动集成
- 存储库访问通过构建拉取请求来实现
- 支持21种语言,如
Android
,C
,C#
,C
,Java
,JavaScript
(使用Node.js),Perl
,PHP
,Python
,R
,Ruby
等 - 预安装的构建和测试工具
- 可用服务包含数据库,消息队列等
- 部署到多个云服务
- 加密安全的环境变量或文件
- 每次构建后都会重新创建虚拟机
- 拥有用于编写脚本的CLI客户端和API
- 附带免费的基于云的托管,无需维护或管理
8 Jenkins特性
- 易于安装,升级和配置
- 分布式构建
- 监控外部工作
- 超过上千个插件可自定义Jenkins环境
- 到目前为止,Github上大约有4000多个issues被关闭,500多个贡献者,10000 star,该项目每3个月发布一次稳定版本,每个月都会有小版本发布
- 支持各种身份验证方法,版本控制系统,通知等。
- Jenkins提供远程访问API及其功能
- 为大型项目提供强大的CI / CD工具
- 它支持各种工作模式,如Freestyle,Pipeline等
- 允许开发人员添加其扩展名
- 兼容Docker,Libvirt,Kubernetes和许多其他程序
9 Travis vs. Jenkins
Parameter | Jenkin | Travis |
---|---|---|
成本 | 免费。但是开发团队需要运行和维护他们的专用服务器。这可以被视为额外费用。 | Travis CI企业套房起价为每月129美元。根据所需的支持级别增加成本。 |
设置时间 | 需要很长的等待时间才能完成安装 | 设置时间非常短。创建配置文件就可以开始集成 |
性能 | 如果你想要具有无限定制选项的CI工具,那么Jenkins是最佳选择。 | 如果在开源项目中或者Github中工作,Travis CI是最佳选择 |
工具类型 | 免费开源 | 商业CI工具 |
使用 | 容易使用 | 使用灵活 |
Github | 友好 | 绝配 |
支持 | 社区广泛支持 | 社区支持有限 |
优点 | 可定制是Jenkins CI服务器的最大好处;大量插件随心所欲配置Jenkins;可以添加身份验证,警报和凭据等新功能 | 与GitHub和云集成;具有完整功能的无限开源项目;通过.travis.ymi文件进行广泛的项目配置;允许集群测试并并行运行;多个构建环境和目标平台; |
缺点 | Jenkins持续集成的一个主要缺点是它具有高度可配置性。没有开箱即用的设置。这就是为什么在系统中配置所有内容可能需要两到三个小时才能完成 | 安装Travis CI的最大缺点是它的商业计划起价为129美元/每月,相当昂贵;不适合高安全性项目;与其他CI工具不同,它不提供Bitbucket支持。 |
版权 | Jenkins本身免费开源 | 对Github开源项目免费,对企业版需付费; |
服务器机器 | 基于服务器部署 | 基于云服务提供; |
自定义选项 | 更多 | 较少 |
配置 | 完全可自定义 | YAML |
控制系统 | 全部可控 | 非常少 |
10 人气指数
- Jenkins还是全球最流行的
- Travis在配套Github方面仍然占据大头
11 哪一个更好呢?
从上面的对比分析来看,可以根据自己的需求来选择,个人还是偏向Jenkins的,毕竟开源,人多力量大,免费,可以自定义配置,虽然首次配置难了点。
但是,小型开源项目还是最适合Travis CI
,因为它易于运行和快速设置。另一方面,大型企业最适合Jenkins,因为它为私人项目提供免费许可,并提供广泛的可定制功能。因此,我们可以说这两种持续集成工具都很好。
12 趋势
未来可能以Saas服务化为趋势,大型平台提供直接的云服务,省去配置,类似Travis,支持的项目种类也会更全,让开发者专注于过程和结果,提高整个项目周期的效率,保证软件的稳定性。
13 参考链接
- https://github.blog/2017-11-07-github-welcomes-all-ci-tools/