io.jenkins.plugins.gitlabserverconfig
- 管理服务器配置和 Web hooks 管理。理想情况下应该在另一个名为 GitLab Plugin
的插件中。未来,这个包应该移动到新的插件中。io.jenkins.plugins.gitlabbranchsource
- 为多分支流水线任务(包括 Merge Requests )和文件夹组织添加 GitLab 分支源。GitLab 插件
,GitLab API 插件
,GitLab 分支源插件
。这个插件还没有二进制文件可用,因为这个插件还处于非常早期的 alpha 阶段,还没有为公众准备好。如果您想尽早介入,可以尝试自己从源代码构建它。
git clone https://github.com/baymac/gitlab-branch-source-plugin.git
cd gitlab-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=<port> # to run on your desired port number
如果您想用 Jenkins 服务器测试它,mvn clean install
之后在你的 Jenkins 实例中遵循以下步骤:
系统管理
插件管理
高级
选项卡上传插件
部分,选择 选择文件
$<root_dir>/target/gitlab-branch-source.hpi
上传
安装(无需重启)
假设插件安装已经完成。
系统管理
系统设置
GitLab
部分
Add GitLab Server
| 选择 GitLab Server
Name
- 插件自动为您生成唯一的服务器名称。用户可能希望配置此字段以满足其需要,但应确保它足够唯一。我们建议保持原样。Server URL
- 包含指向 Gitlab 服务器的 URL 。默认设置为 "https://gitlab.com" 。用户可以修改它以输入其 Gitlab 服务器 URL ,例如 https://gitlab.gnome.org/、http://gitlab.example.com:7990 等等。Credentials
- 包含类型为 GitLab Personal Access Token 的凭据条目列表。当没有添加凭证时,它显示 "-none-" 。用户可以通过单击 "Add" 按钮添加凭证。Web Hook
- 此字段是一个复选框。如果希望插件在与 Gitlab 项目相关的任务上设置 Webhook ,请选中此框。该插件监听相关 Gitlab 项目的 URL ,当 Gitlab 服务器中发生事件时,服务器将向设置 Web Hook 的 URL 发送事件触发器。如果您希望在 Gitlab 项目上持续集成(或持续交付),那么您可能希望自动设置它。Personal Access Token
Add
| 选择 Jenkins
Kind
为 GitLab Personal Access TokenToken
ID
处输入唯一的 idAdd
Settings
Access Token
api
,read_user
,read_repository
Create Personal Access Token
GitLab Personal Access Token
类型凭证条目用来安全地将 token 保存在 Jenkins 内部。Credentials
下拉列表选择你需要的 tokenTest Connection
Credentials verified for user <username>
Apply
(在底部)或者,用户可以在 Jenkins 内部生成 Gitlab 个人访问令牌,并自动添加 Gitlab 个人访问令牌凭据到 Jenkins 服务器凭据。
GitLab
部分的底部选择 Advanced
Manage Additional GitLab Actions
Convert login and password to token
GitLab Server URL
From credentials
- 要选择已在的持久存储的用户名密码凭据,或添加用户名密码凭据来持久存储它。From login and password
- 如果这是一次性的,那么您可以直接在文本框中输入凭据,并且用户名/密码凭据不会持久化。Create token credentials
.id
。它是一个128位长的 UUID-4字符串(36个字符)。没有必要在UI中浪费时间。 Jenkins 配置即代码 (JCasC)
或者简单地 配置即代码
插件允许你通过一个 yaml
文件配置 Jenkins。如果你是新用户,你可以在这里了解更多关于 JCasC 的信息.
这里有多种方式配置 JCasC yaml 文件来配置 Jenkins:
$JENKINS_ROOT
搜索一个名为 jenkins.yaml
的文件。CASC_JENKINS_CONFIG
,其中包含配置 yaml
文件的路径。/var/jenkins_home/casc_configs
。/var/jenkins_home/casc_configs/jenkins.yaml
。https://<your-domain>/jenkins.yaml
。<your-jenkins-domain>/configuration-as-code
。输入 jenkins.yaml
的路径或 URL 并选择 Apply New Configuration
。一个通过 jenkins.yaml
配置 GitLab 服务器的例子:
credentials:
system:
domainCredentials:
- credentials:
- gitlabPersonalAccessToken:
scope: SYSTEM
id: "i<3GitLab"
token: "XfsqZvVtAx5YCph5bq3r" # gitlab personal access token
unclassified:
gitLabServers:
servers:
- credentialsId: "i<3GitLab"
manageHooks: true
name: "gitlab.com"
serverUrl: "https://gitlab.com"
要获得更好的安全性,请参阅 JCasC 文档中的处理 secrets 部分。
GSoC 的第二阶段将用于开发 Gitlab 分支源插件。新功能正在开发中,但代码库不稳定,需要大量的错误修复。一些功能(如多分支流水线任务)工作正常。在第二阶段结束时会有更多关于它的信息。
这个项目使用 Jenkins JIRA 来跟踪问题。你可以在 gitlab-branch-source-plugin
模块提交问题。
这个插件是由 Google 编程夏令营 (GSoC)团队为 GitLab 支持多分支流水线而构建和维护的。很多灵感来自于 GitLab 插件
,Gitea 插件
及 GitHub 插件
。
我们的团队成员:baymac,LinuxSuRen, Marky,Joseph, Justin,Jeff。
来自其他人的支持:Oleg,Greg,Owen。
也感谢整个 Jenkins 社区提供的专业技术和灵感。
推荐阅读
在线分享 - 作为一名开源贡献者是如何使用 GitHub 的?
译者:王冬辉