Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GitLab CI vs.Jenkins_Git_Jenkins_Gitlab_Gitlab Ci_Drone.io - Fatal编程技术网

GitLab CI vs.Jenkins

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与Git发行版附带的GitLab CI、drone.io等其他CI有什么区别。在一些研究中,我只能指出GitLab社区版不允许添加Jenkins,但GitLab企业版允许添加Jenkins。还有其他显著差异吗?

这是我的经验:

在我的工作中,我们使用GitLab EE管理我们的存储库,并运行Jenkins服务器(1.6)

在这个基础上,他们做的差不多。他们将在服务器/Docker映像上运行一些脚本

TL;博士

  • Jenkins更容易使用/学习,但它有成为插件地狱的风险
  • Jenkins有一个GUI(如果其他人必须能够访问/维护它,这是首选)
  • 与GitLab的集成比与GitLab CI的集成少
  • Jenkins可以从您的存储库中分离出来
大多数CI服务器都非常简单(),,,还有其他一些)。它们允许您从YAML文件定义执行shell/bat脚本。Jenkins的可插拔性更强,并带有UI。这可能是优点也可能是缺点,这取决于您的需要

Jenkins是非常可配置的,因为有所有可用的插件。这样做的缺点是,您的CI服务器可能会变成一堆插件

在我看来,在Jenkins中链接和编排作业要比通过YAML(调用curl命令)简单得多(因为UI)。除此之外,Jenkins还支持在您的服务器上不可用时安装某些二进制文件的插件(其他插件则不知道)

现在(也支持更多的“适当ci”,包括
Jenkinsfile
和来自Jenkins 2的默认插件),但过去与存储库的耦合比GitLab ci少

使用YAML文件来定义构建管道(并最终运行纯shell/bat)更干净

Jenkins可用的插件允许您可视化各种报告,例如测试结果、覆盖率和其他静态分析器。当然,您可以随时编写或使用工具来完成这项工作,但这对Jenkins来说绝对是一个优势(尤其是对于那些倾向于过分重视这些报告的经理)

最近我越来越多地与GitLab CI合作。在GitLab,他们做得非常好,让整个体验变得有趣。我知道人们使用Jenkins,但当GitLab运行并可用时,就很容易开始使用GitLab CI。不会有任何东西像GitLab CI那样无缝集成,尽管他们在第三方集成方面付出了相当大的努力

  • 他们的文档应该能让你很快开始
  • 入门门槛很低
  • 维护很容易(没有插件)
  • 缩放跑步者很简单
  • CI完全是存储库的一部分
  • 詹金斯的工作/观点可能会变得混乱
撰写本文时的一些优惠:

  • 仅支持社区版中的单个文件。在中复制多个文件

我同意Rik的大部分注释,但我认为哪个更简单呢?相反:GitLab被证明是一个非常棒的工具

大部分功能来自于独立的,并且位于同一浏览器选项卡下的同一产品中:从存储库浏览器、发布板或构建历史到部署工具和应用程序

我现在正在使用它来自动化和测试应用程序如何安装在不同的Linux发行版上,它的配置速度非常快(试着在Firefox中打开一个复杂的Jenkins作业配置,等待无响应脚本出现,而编辑
.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是一款出色的可视化管理工具:

  • 团队的所有成员(包括非技术人员)都可以快速方便地访问应用程序生命周期状态
  • 因此,它可以用作发布管理的交互式操作仪表板
Jenkins

詹金斯是一个伟大的构建工具。它的优势在于它有许多插件。特别是,我在使用Jenkins和其他CI或CD工具之间的接口插件方面运气很好。这总是比在两个com之间重新开发(可能很糟糕)对话接口更好的选择
.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