这是GSoC 2019 Jenkins必威国际有限公司项目之一。我们正在努力增加对GitLab中的多分支管道作业和文件夹组织。计划是创建以下插件:
GitLab API插件-封装GitLab Java api。
GitLab分支源码插件—包含两个包:
io.必威国际有限公司jenkins.plugins.gitlabserverconfig
—管理服务器配置和web挂钩管理。理想情况下应该驻留在另一个带有名称的插件中GitLab插件
。将来,这个包应该被移动到一个新的插件中。
io.必威国际有限公司jenkins.plugins.gitlabbranchsource
为多分支管道作业(包括合并请求)和文件夹组织添加了GitLab分支源。
实现一个轻量级的GitLab插件,它依赖于GitLab API插件。
遵循3个独立插件的约定。GitLab插件
,GitLab API插件
,GitLab分支源码插件
。
实现支持多分支管道作业的GitLab分支源插件。
支持新的Jenkins特必威国际有限公司性,例如必威国际有限公司Jenkins代码作为配置(JCasC),增量式工具。
清晰高效的设计。
支持新的SCM Trait api。
支持Java 8及以上版本。
这个插件还没有二进制文件,因为这个插件还处于早期的alpha阶段,还没有准备好面向公众。如果您希望尽早开始,可以尝试自己从源代码构建它。
将源代码签出到本地机器:
Git克隆https://github.com/baymac/gitlab-branch-source-plugin.git CD gitlab-branch-source-plugin
安装插件:
mvn clean install -DskipTests #跳过测试
运行该插件:
mvn hpi:run #在localho必威国际有限公司st上运行Jenkins实例:8080Port =<端口> #,以在所需的端口号上运行
如果您想在Jenkins服务器上测试它,之后必威国际有限公司mvn全新安装
在Jenkins实例中遵循以下步骤:必威国际有限公司
选择管理詹金斯必威国际有限公司
选择管理插件
选择先进的
选项卡
在上传插件
部分中,选择选择文件
选择$ < root_dir > /目标/ gitlab-branch-source.hpi
选择上传
选择安装没有重启
假设插件已经安装完成。
在詹金必威国际有限公司斯,选择管理詹金斯必威国际有限公司
选择配置系统
向下滚动找到GitLab
部分
有4个字段需要配置:
的名字
-插件会自动为你生成一个唯一的服务器名称。用户可能想要配置这个字段以满足他们的需求,但应该确保它足够独特。我们建议保持现状。
服务器URL
-包含到你的GitLab服务器的URL。默认设置为“https://gitlab.com”。用户可以修改它以输入他们的GitLab服务器的URL。https://gitlab.gnome.org/,http://gitlab.example.com:7990。等。
凭证
-包含GitLab个人访问令牌类型的凭据条目列表。当没有添加凭据时,它显示“-none-”。用户可通过点击“添加”按钮添加凭证。
网络连接
—此字段为复选框。如果你想让插件在你的GitLab项目相关的工作中设置一个webhook,选中这个复选框。这个插件监听一个相关的GitLab项目的URL,当一个事件在GitLab服务器中发生时,服务器会发送一个事件触发器到设置web钩子的URL。如果你想在你的GitLab项目上持续集成(或持续交付),那么你可能想要自动设置它。
添加个人访问令牌凭据(要自动生成个人访问令牌,请参见下一节):
用户需要添加一个GitLab个人访问令牌
类型凭据条目以在Jenkins中安全地持久化令牌。必威国际有限公司
生成一个个人访问令牌
在你的GitLab服务器上:
从右上角选择配置文件下拉菜单
选择设置
选择访问令牌
从左列
输入名称|“作用域”设置为api
,read_user
,read_repository
选择创建个人访问令牌
复制生成的令牌
返回Jenkins 必威国际有限公司| Select添加
在凭据字段|中选择必威国际有限公司
集种类
到GitLab个人访问令牌
输入令牌
在中输入唯一的idID
输入人类可读的描述
选择添加
中选择所需的令牌 选择 它应该返回类似于
凭证
下拉测试连接
为用户<用户名>验证凭据
选择应用
(底部)
现在Jenkins上安装了GitLab服务器必威国际有限公司
或者,用户可以在Jenkins内部生成一个GitLab个人访问令牌,并自动将GitLab个人访问令牌凭证添加到Jenkins服务器凭证中。必威国际有限公司
选择先进的
在底部GitLab
部分
选择管理额外的GitLab操作
选择将登录和密码转换为令牌
设置GitLab服务器URL
生成令牌有2个选项;
从凭证
—选择一个已经持久化的用户名密码凭证或添加一个用户名密码凭证来持久化它。
从登录和密码
-如果这是一个一次性的事情,然后你可以直接输入你的凭据文本框和用户名/密码凭据是不持久的。
设置用户名/密码凭证后,选择创建令牌的凭证
。
令牌创造者将在你的GitLab服务器中为给定的用户创建一个个人访问令牌,并在Jenkins服务器中为相同的用户创建一个凭证。必威国际有限公司您可以返回到GitLab服务器配置,选择生成的新凭证(首先选择“-none-”,然后将出现新的凭证)。出于安全原因,此令牌不显示为纯文本,而是返回id
。长度为128位(36个字符)的UUID-4字符串。
不需要在UI中折腾。 有多种方式加载JCasC yaml文件来配置Jenkins:必威国际有限公司 JCasC默认搜索具有该名称的文件 JCasC查找环境变量 包含一组配置文件的文件夹路径。 指向单个文件的完整路径。 指向在web上服务的文件的URL。 您也可以在UI中设置配置yaml路径。去 一个配置GitLab服务器的示例 要获得更好的安全性,请参阅处理机密部分在JCasC文档。
配置代码
必威国际有限公司Jenkins配置作为代码(JCasC)
或者简单地配置代码
插件允许您配置Jenkins通过必威国际有限公司yaml
文件。如果您是第一次使用JCasC,您可以了解更多关于JCasC的信息在这里。添加配置YAML:
必威国际有限公司jenkins.yaml
在J必威国际有限公司ENKINS_ROOT美元
。CASC_必威国际有限公司JENKINS_CONFIG
其中包含配置的路径yaml
文件。
/var/必威国际有限公司jenkins_home / casc_configs
。/var/必威国际有限公司jenkins_home / casc_configs / jenkins.yaml
。https:// <域> / jenkins必威国际有限公司.yaml
。< your必威国际有限公司-jenkins-domain > / configuration-as-code
。输入到的路径或URL必威国际有限公司jenkins.yaml
并选择应用新的配置
。必威国际有限公司jenkins.yaml
:凭证:系统:domainCredentials: -凭证:—gitlabPersonalAccessToken: scope: SYSTEM id: "i<3GitLab" token: "XfsqZvVtAx5YCph5bq3r" # gitlab个人访问令牌不保密的:gitLabServers:服务器: -credentialsId:“我< 3 gitlab”manageHooks:真正的的名字:"gitlab.com"serverUrl:"https://gitlab.com"
GSoC的第二阶段将用于开发GitLab分支源。新特性还在开发中,但代码库不稳定,需要修复很多错误。像多分支管道作业(Multibranch Pipeline job)这样的功能可以正常工作。在第二阶段结束时再详细介绍。
这个项目使用Jenkins必威国际有限公司JIRA跟踪问题。你可以把问题归档到gitlab-branch-source-plugin
组件。
这个插件是由谷歌夏季代码(GSoC)团队构建和维护的GitLab的多分支管道支持。很多灵感都来自GitLab插件
,Gitea插件
而且GitHub插件
。
也感谢整个Jenkins社区提供的技术专长和必威国际有限公司灵感。