必威国际有限公司
  • 博客
  • 文章
    使用必威国际有限公司詹金斯 扩展必威国际有限公司詹金斯 用人案例 安卓 C / C ++ Docker. 嵌入式 GitHub. java. PHP. 连续交货 Python 红宝石
  • 插件
  • 社区
    参与 聚会 活 问题 Wiki. 特别兴趣小组 - 宣传和推广 - 中文本地化 - 云峰生(云母) - 谷歌夏季的代码 - 硬件和电子设计自动化(EDA) - 流水线设计 - 平台
  • 子项目
    总览 蓝海 谷歌编程夏令营 基因设施 必威国际有限公司詹金斯地区的聚会 必威国际有限公司詹金斯配置即代码 必威国际有限公司Jenkins X. 必威国际有限公司Jenkins Remoting.
  • 关键词
    安全 繁体 奖项 准则 艺术作品
  • 中文
    英语
  • 下面

鸣叫

作者贝母译者王冬辉(王东辉)发布于2019年8月23日
  • GitLab
  • 插件
  • 管道
  • 多刺
  • GSOC.
  • gsoc2019

GitLab分支源插件已经走出测试阶段,并已发布到詹金斯更新中必威国际有限公司心。它允许您基于GitLab用人或组或子组项目创建任务您可以:

  • 从GitLab用户/组/子组导入单个项目的分支作为任务(多分支流水线任务)

  • 从GitLab用户/组/子组导入所有或部分项目的分支作为任务(GitLab组任务或GitLab文件夹组织)

GitLab组项目对项目进行扫描,根据设置的规则导入流水线任务。导入项目之后,詹金斯立必威国际有限公司即基于必威国际有限公司Jenkinsfile.流水线脚本运行任务并且将状态通知到GitLab流水线状态。这个插件与其他分支源插件不同,它提供了GitLab服务器配置,可以在系统配置中配置。詹金斯配置即必威国际有限公司代码(JCasC)也可以用于配置服务器。要想了解更多关于服务器配置的信息,请参考我之前的博客。

要求

  • 必威国际有限公司Jenkins - 2.176.2(LTS)

  • Gitlab - v11.0 +

创建任务

要创建多分支流水线任务(使用GitLab分支源)或GitLab组任务,您必须将GitLab个人访问令牌添加到服务端配置。凭据用于获取项目的元数据,并在GitLab服务器上设置钩。如果令牌具有管理访问权限,您还可以设置系统钩子,而Web Hook.可以从任何用户令牌设置。

创建多分支流水线任务

转到詹必威国际有限公司金斯>新建任务>多分支流水线>添加源> GitLab项目

GitLab工程科源“>
        </div>
       </div>
       <div class=
  • 服务器- 从下拉菜单中选择所需的GitLab服务器,需要在创建此任务之前进行配置。

  • 结帐凭证- 如果插件要构建任何任何私私,加加SSHPrivateKey或用户名/密码类型的凭据。如果所有的项目都是公开的则不需要检出凭据。检出凭据与GitLab服务器配置中的凭据(GitLab个人访问令牌类型)不同。

  • 所有者- 可以是用人那组或子组。根据这一点填充项目字段。

  • 项目- 从下拉菜中选择要构建。

  • 行为- 这些特性是非常强大的工具,用于配置构建逻辑和构建后逻辑我们定义了新的特性您可以在仓库文档中看到所有信息。

保存并等待分支索引。您可以从这里自由导航,任务进度显示在左侧。

多刺管道作业索引“>
        </div>
       </div>
       <div class=

索引完成后,导入的项目将所有分支,合并请求和标签列示为任务。

多枝流水线作业文件夹“>
        </div>
       </div>
       <div class=

查看每个任务,您会发表符号有一定的作用:

  • 您可以通过选择立即构建手动触发任务。

  • 您可以通过选择的按钮访问gitlab服务仪上的特性分类/合计/标签。

生成操作“>
        </div>
       </div>
       <div class=

创建GitLab组类型任务

转到詹必威国际有限公司金斯>新建任务> GitLab组

Gitlab文件夹组织“>
         </div>
        </div>
        <div class=

您可以注意到,配置非常类似于多分支流水线任务,只是缺少项目字段。您可以添加在您的所有者(用户/组/子组)中所有项目。表单验证将与GitLab服务器检查所有者是否有效。您可以添加发现亚组项目的特性,该特性允许您发现组或子组中所有子组的子项目,但此特性不适用于用户。在索引时,网络挂接在每个项目中创建。GitLab阿比不支持创建组网络挂接,所以这个插件不支持只有GitLab EE才支持的特性。

现在可以查看导入的项目,如果需要,可以在每个文件夹上配置不同的设置。

GitLab组文件夹“>
         </div>
        </div>
       </div>
       <div class=

Gitlab流水线状态通道

GitLab从任务排队的角度得到关于构建状态的通知。

  • 成功 - 任务成功了

  • 失败 - 任务失败了并且合并请求还没准备好合并

  • 出错 - 进生了外;例如:j必威国际有限公司enkins任务被终止了

  • 等待 - 任务正在构建队列中等待

GitLab流水线状态“>
         </div>
        </div>
        <div class=

关于GitLab流水线状态,有指向相应詹金斯必威国际有限公司任务构建的超链接。要查看流水线阶段和控制台输出,需要访问詹金斯服务器。我们也计划通知管道阶段到GitLab,但它有一些缺点,目前这已得到解决,有未来的计划添加它作为特性。

您还可以通讯从特性列表中选择跳过管道状态通知来跳过关于流水线状态的GitLab通知。

合并请求

实现对项目合并请求的支持具有挑战性。第一,MR有两种类型,即原始分支和叉子的项目分支,因此每个头必须有不同的实现。第二,来自叉的MR可能来自不可信的源,所以实现了一种新的策略相信议员,它允许CI仅从具有开发人员/维护者/所有者访问级别的可信用户构建MR。

信任的会员战略“>
         </div>
        </div>
        <div class=

第三,来自叉的MR由于GitLab的问题不支持流水线状态通知,请参考这里。您可以添加一个特性日志生成状态上GitLab评论,它允许那您添加一个须藤用户(如果你希望主人用户为空)以在提交/标签/ MR上对构建结果进行评论。要添加须藤用户,令牌必须具有管理访问权限。默认情况下,只有失败/出错以评论的形式被记录,但是您也可以通过勾选复选框来启用成功构建的日志记录。

构建状态注释特质“>
         </div>
        </div>
        <div class=

有时候,合并请求因为外部错误而失败,因此因此您希望通过评论必威国际有限公司詹金斯重建来触发先生的重新构建。要启用该触发器,添加特性触发建立在合并请求评论。评论内容可以在特征中间修改。出于安全原因,评论者需要有该项目的开发人员/维护者/所有者访问权限。

合并请求构建触发器“>
         </div>
        </div>
       </div>
      </div>
     </div>
     <div class=

钩

如果在服务器配置中配置了网络挂接,则在项目上自动创建网络挂接。请确保网络挂接通过CSRF过滤器。詹金斯监听必威国际有限公司/ gitlab-网络挂接/后路径上的网络挂接GitLab上网络挂接在以下事件上被触发:

  • 推送事件- 当提交或分支被推送时

  • 标签事件- 当新标签被创建时

  • 合并请求事件- 当合并请求被创建/更新

  • 注意事件- 当对合并请求进行评论时

如果令牌具有管理访问权限,还可以在GitLab服务器上设置系统挂钩。在创建新项目时触发系统钩,詹金斯根据配置触发新必威国际有限公司项目的重新扫描,并在其上设置卷筒纸钩。詹金斯监听/ gitlab-systemhook / post路径上你的系统挂钩。GitLab上系统钩在库更新活动上被触发:

你也可以使用覆盖挂钩管理模式特性来覆盖默认你的钩管理以及选择是否要使用不同的上下文(比如项目)或完全禁用它。

覆盖挂钩管理“>
        </div>
       </div>
      </div>
     </div>
     <div class=

Job DSL以及jcasc

你可以使用工作DSL.来创建任务下面有一个工作DSL脚本的示例:

organizationFolder('GitLab组织文件夹') { 描述(“GitLab组织文件夹招聘DSL创建“) 显示名称('我的项目')//“项目”组织{{gitLabSCMNavigator projectOwner(“baymac“)credentialsId(“我<3gitlab.“) 服务器名称(“Gitlab-3214.“)//“特征”(“行为”中的GUI),其是“声明兼容”性状{subGroupProjectDiscoveryTrait()//发现子组内的项目Gitlabbranchdiscovery {StrategentidId(3.)//发现所有分支机构} OriginMergerequestDiscoverytrait {StrategentidId(1)//发现抄表员,并与目标分支合并它们} gitLabTagDiscovery()//发现标签}}}//“性状”是NOT“声明兼容”(在GUI“行为”)//对于某些“特质,我们需要手工直到JobDSL处理它来配置这个东西// https://issues.必威国际有限公司jenkins.io/browse/JENKINS-45504配置 {def性状=它/导航/'io.必威国际有限公司jenkins.plugins.gitlabbranchsource.GitLabSCMNavigator'/特征特拉西特<<'io.必威国际有限公司jenkins.plugins.gitlabbranchsource.ForkMergeRequestDiscoveryTrait'{strategyId(2) 相信(班级:'io.必威国际有限公司jenkins.plugins.gitlabbranchsource.ForkMergeRequestDiscoveryTrait $ TrustPermission')}}//“项目识别器”projectFactories{{workflowMultiBranchProjectFactory SCRIPTPATH'必威国际有限公司Jenkinsfile.'}}//“孤儿项目战略”orphanEditemstrategy {discardolditems {daystokeep(10.)numToKeep(5.)}}//“扫描文件夹组织触发器”:一日游//我们需要用手现在配置这些东西,因为JobDSL只允许“周期性(INT分钟)”触发器{periodicFolderTrigger {间隔('1D'}}}}

你也可以使用JCasC从招聘DSL脚本直接创建任务。示例请查看该插件仓库。

如何与我们讨论的错误或新特性?

  • 这个项目使用必威国际有限公司詹金斯JIRA来跟踪问题。你可以♥gitlab-分支源 - 插件组件下载的问题。

  • 在开发者邮件列表中发送你的邮件。

  • 加入我们的小胶质通道。

未来的工作

  • 积极维护Gitlab分享到源并从用户那里获取反馈以改进插件的用户体验。

  • 扩展在蓝色中央中间对对对水线的支持。

资源

  • GitLab API插件

  • GitLab API插件百科

  • Gitlab分享到源

  • 项目概要

  • GitHub的分支源插件发布

感谢j必威国际有限公司enkins以及谷歌编程兼营:)

本网站的内容基于知识共享署名 - 相同方式共享4.0许可许可。

资源
  • 活
  • 文章
  • 博客
解决方向
  • 安卓
  • C / C ++
  • Docker.
  • 嵌入式
  • GitHub.
  • java.
  • PHP.
  • 连续交货
  • Python
  • 红宝石
项目
  • 问题跟踪
  • Wiki.
  • GitHub.
  • 必威国际有限公司詹金斯构建CI
社区
  • 用户邮件列表
  • 开发人员邮件列表
  • 推特
  • 诚信公馆号
  • 微博
  • 中文社区
  • reddit.
  • 购物
  • 荣誉