多分支流水线任务对 GitLab SCM 的支持

这是在 GSoC 2019中的一个 Jenkins 项目。我们正致力于增加多分支流水线任务和文件夹组织对 GitLab 的支持。这个计划是创建以下插件:

GitLab API 插件 - 包装 GitLab Java APIs。

GitLab 分支源插件 - 包括两个包:

- 管理服务器配置和 Web hooks 管理。理想情况下应该在另一个名为 的插件中。未来,这个包应该移动到新的插件中。

- 为多分支流水线任务(包括 Merge Requests )和文件夹组织添加 GitLab 分支源。

现状

完全支持自由风格的任务和流水线(单分支)任务。

部分支持多分支流水线任务(没有 MRS 检测)。

不支持 Gitlab 文件夹组织。

这个项目的目标

实现一个依赖于 Gitlab API 插件的轻量级 Gitlab 插件。

遵循3个独立插件的约定,即 ,,。

实现 Gitlab 分支源插件,支持多分支管道作业。

支持新的 Jenkins 特性,例如 Jenkins 代码即配置 (JCasC), 增量式工具。

清晰高效的设计。

支持新的 SCM 特性 APIs。

支持 Java 8 及更高版本。

构建插件

这个插件还没有二进制文件可用,因为这个插件还处于非常早期的 alpha 阶段,还没有为公众准备好。如果您想尽早介入,可以尝试自己从源代码构建它。

安装:

将源代码签出到您的本地机器上:

git clone https://github.com/baymac/gitlab-branch-source-plugin.git

cdgitlab-branch-source-plugin

安装插件:

mvn clean install

mvn clean install -DskipTests#to skip tests

运行插件:

mvn hpi:run#runs a Jenkins instance at localhost:8080

mvn hpi:run -Djetty.port=

#to run on your desired port number

如果您想用 Jenkins 服务器测试它, 之后在你的 Jenkins 实例中遵循以下步骤:

选择

选择

选择 选项卡

在 部分,选择

选择

选择

选择

使用

假设插件安装已经完成。

在 Jenkins 上设置 Gitlab 服务器配置

在 jenkins 上,选择

选择

向下滚动找到 部分

选择 | 选择

现在您将看到 GitLab 服务器配置选项。

需要配置的字段有4个:

- 插件自动为您生成唯一的服务器名称。用户可能希望配置此字段以满足其需要,但应确保它足够唯一。我们建议保持原样。

- 包含指向 Gitlab 服务器的 URL 。默认设置为 "https://gitlab.com" 。用户可以修改它以输入其 Gitlab 服务器 URL ,例如 https://gitlab.gnome.org/、http://gitlab.example.com:7990 等等。

- 包含类型为 GitLab Personal Access Token 的凭据条目列表。当没有添加凭证时,它显示 "-none-" 。用户可以通过单击 "Add" 按钮添加凭证。

- 此字段是一个复选框。如果希望插件在与 Gitlab 项目相关的任务上设置 Webhook ,请选中此框。该插件监听相关 Gitlab 项目的 URL ,当 Gitlab 服务器中发生事件时,服务器将向设置 Web Hook 的 URL 发送事件触发器。如果您希望在 Gitlab 项目上持续集成(或持续交付),那么您可能希望自动设置它。

添加一个 Personal Access Token 凭据(自动生成 Personal Access Token 请参考下一个部分):

在你的 GitLab 服务器生成一个

返回 Jenkins | 在凭据字段中选择 | 选择

设置 为 GitLab Personal Access Token

输入

在 处输入唯一的 id

输入人类可读的描述

选择

从右上角选择配置文件下拉菜单

选择

从左侧菜单选择

输入一个名称 | 将 Scope 设置为 ,,

选择

复制生成的 token

用户需要添加一个 类型凭证条目用来安全地将 token 保存在 Jenkins 内部。

测试连接:

在 下拉列表选择你需要的 token

选择

它应该会返回

选择 (在底部)

GitLab 服务器现在在 Jenkins 设置好了

在 Jenkins 内创建个人访问令牌

或者,用户可以在 Jenkins 内部生成 Gitlab 个人访问令牌,并自动添加 Gitlab 个人访问令牌凭据到 Jenkins 服务器凭据。

在 部分的底部选择

选择

选择

设置

有两个选项来生成令牌:

- 要选择已在的持久存储的用户名密码凭据,或添加用户名密码凭据来持久存储它。

- 如果这是一次性的,那么您可以直接在文本框中输入凭据,并且用户名/密码凭据不会持久化。

设置完你的用户名密码凭据后,选择 .

token 创建器将在 GitLab 服务器中为具有所需范围的给定用户创建个人访问令牌,并为 Jenkins 服务器中的相同用户创建凭据。您可以返回 GitLab 服务器配置来选择生成的新凭证(首先选择 "-none-" ,然后将出现新的凭证)。出于安全原因,此令牌不显示为纯文本,而是返回一个 。它是一个128位长的 UUID-4字符串(36个字符)。

配置即代码

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190710A0Q1N500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券