GitLab CI vs.Jenkins
Jenkins与Git发行版附带的GitLab CI、drone.io等其他CI有什么区别。在一些研究中,我只能指出GitLab社区版不允许添加Jenkins,但GitLab企业版允许添加Jenkins。还有其他显著差异吗?这是我的经验: 在我的工作中,我们使用GitLab EE管理我们的存储库,并运行Jenkins服务器(1.6) 在这个基础上,他们做的差不多。他们将在服务器/Docker映像上运行一些脚本 TL;博士强>GitLab CI vs.Jenkins,git,jenkins,gitlab,gitlab-ci,drone.io,Git,Jenkins,Gitlab,Gitlab Ci,Drone.io,Jenkins与Git发行版附带的GitLab CI、drone.io等其他CI有什么区别。在一些研究中,我只能指出GitLab社区版不允许添加Jenkins,但GitLab企业版允许添加Jenkins。还有其他显著差异吗?这是我的经验: 在我的工作中,我们使用GitLab EE管理我们的存储库,并运行Jenkins服务器(1.6) 在这个基础上,他们做的差不多。他们将在服务器/Docker映像上运行一些脚本 TL;博士 Jenkins更容易使用/学习,但它有成为插件地狱的风险 Jenkins
- Jenkins更容易使用/学习,但它有成为插件地狱的风险
- Jenkins有一个GUI(如果其他人必须能够访问/维护它,这是首选)
- 与GitLab的集成比与GitLab CI的集成少
- Jenkins可以从您的存储库中分离出来
Jenkinsfile
和来自Jenkins 2的默认插件),但过去与存储库的耦合比GitLab ci少
使用YAML文件来定义构建管道(并最终运行纯shell/bat)更干净
Jenkins可用的插件允许您可视化各种报告,例如测试结果、覆盖率和其他静态分析器。当然,您可以随时编写或使用工具来完成这项工作,但这对Jenkins来说绝对是一个优势(尤其是对于那些倾向于过分重视这些报告的经理)
最近我越来越多地与GitLab CI合作。在GitLab,他们做得非常好,让整个体验变得有趣。我知道人们使用Jenkins,但当GitLab运行并可用时,就很容易开始使用GitLab CI。不会有任何东西像GitLab CI那样无缝集成,尽管他们在第三方集成方面付出了相当大的努力
- 他们的文档应该能让你很快开始
- 入门门槛很低
- 维护很容易(没有插件)
- 缩放跑步者很简单
- CI完全是存储库的一部分
- 詹金斯的工作/观点可能会变得混乱
- 仅支持社区版中的单个文件。在中复制多个文件
.gitlab ci.yml
)是多么轻量级)
由于以下原因,配置/缩放从属设备所花费的时间大大减少:;再加上事实上,你得到了相当体面和免费的共享跑步者
Jenkins在成为GitLab CI的超级用户几周后感觉更加手工,例如,复制每个分支的作业,安装插件来完成简单的事情,比如SCP上传。今天我唯一错过的用例是涉及多个存储库;这需要很好地解决
顺便说一句,我目前正在写一个关于GitLab CI的系列文章,以演示如何使用它来配置您的存储库CI基础设施。上周出版的第一篇文章介绍了基础知识、优缺点以及与其他工具的区别:首先,从今天起,GitLab社区版可以与Jenkins完全互操作。毫无疑问 在下面的内容中,我将给出一些关于Jenkins和GitLab CI结合的成功经验的反馈。我还将讨论您是应该同时使用它们还是只使用其中一种,以及出于什么原因 我希望这将为您提供关于您自己项目的高质量信息 GitLab CI和Jenkins的优势 GitLab CI GitLab CI自然地集成在GitLab SCM中。您可以使用
gitlab ci.yml
文件创建管道,并通过图形界面对其进行操作
这些作为代码的管道显然可以存储在代码库中,实施“一切都是代码”实践(访问、版本控制、再现性、可重用性等)
GitLab CI是一款出色的可视化管理工具:
- 团队的所有成员(包括非技术人员)都可以快速方便地访问应用程序生命周期状态
- 因此,它可以用作发布管理的交互式操作仪表板
.myTemplate:
image: node:10.14.2
script:
- npm install
- npm run test
include:
- remote: https://....
test:
extends: .myTemplate
only:
refs: ["master"]
variables:
- $CI_PIPELINE_SOURCE == "push"
extends:
- .pieceA
- .pieceB