Gerrit使用Jenkins添加Verifed+1标签

一、配置Gerrit

(一)下载event-logs插件

https://gerrit-ci.gerritforge.com/view/Plugins-stable-3.3/下载插件,安装至/var/gerrit/plugins目录。

(二)添加verify标签

下载克隆All-Projects仓库

1
vi project.config

添加一段verified Lable 在最后面:

1
2
3
4
5
[label "Verified"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Verified
1
2
git commit -a -m "Add Label Verified"
git push origin HEAD:refs/meta/config //千万不要推错分支

二、配置Jenkins

(一)安装

依次进入“系统管理 -> 管理插件 -> 可选插件”,搜索插件 Gerrit Trigger,点击安装即可。

(二)配置

依次进入“系统管理 -> Gerrit Trigger”,添加Gerrit Server,按照下图进行配置,然后测试连接。

  • Nam: 名称
  • Hostname:服务器域名或者IP
  • Frontend URL: Gerrit UI地址
  • SSH Port:SSH端口,Gerrit默认为29418
  • Username:连接Gerrit的用户名
  • SSH Keyfile:Jenkins服务器的私钥路径,同时需要将Jenkins公钥配置到上面的Gerrit用户的公钥列表中
  • SSH Keyfile Password:私钥文件密码,无则留空

如果想要将Jenkins构建的结果显示到Gerrit中,需要在 高级 中配置REST API。如下图所示,配置完成后测试是否可用:

  • Gerrit HTTP Username:Gerrit中的用户
  • Gerrit HTTP Password:Gerrit用户密码。需要在Gerrit UI的用户设置中选择 HTTP Password,生成HTTP密码。

(三)任务配置

1.源码配置

  • Repository URL:Gerrit中源码下载地址
  • Credentials:下载源码的认证,如果将Jenkins的执行机的公钥已配置到Gerrit用户中,此项可为空
  • Name:存储库的ID,例如origin,用于在其他远程存储库中唯一标识此存储库。这与你在git remote命令中使用的“name”相同。如果留空,Jenkins将为您生成唯一的名称。您通常希望在拥有多个远程存储库时指定此选项。
  • Refspec:refspec控制要检索的远程引用以及它们如何映射到本地引用。如果留空,它将为git fetch的正常行为一致认,它将所有branch heads检索为remotes/REPOSITORYNAME/BRANCHNAME。对于大多数情况,此默认行为都可以。 换句话说,默认的refspec是+refs/heads/*:refs/remotes/REPOSITORYNAME/*,其中REPOSITORYNAME是你在上面的“存储库名称”文本框中指定的值。
  • Branches to build:如果要跟踪存储库中的特定分支,请指定分支。如果留空,将检查所有分支的变化并构建。 最安全的方法是使用refs/heads/语法。这样预期的分支是明确的。
  • Additional Behaviours:当你有兴趣使用job构建multiple heads(最常见的是多个分支)时,您可以选择Jenkins如何选择以什么顺序构建的分支。 Jenkins中的这个扩展点被许多其他插件用来控制作业以构建特定的提交。当你激活这些插件时,您可能会看到他们在此处安装自定义策略。

要让 Git 插件下载你的更改,请将 Refspec 设置为$GERRIT_REFSPE,并将Additional Behaviours 设置为 Additional Behaviours/Strategy For Choosing What To Build,并选择 GERRIT Trigger 。 你可能还需要将 Branches to build 设置为 $GERRIT_BRANCH

如果这对你不起作用,请设置 Refspec 设置为 refs/changes/*:refs/changes/* ,并把 Branches to build 设置成 $GERRIT_REFSPEC

2.Gerrit Trigger配置

Gerrit Project:配置监控的代码库,右边配置监控的分支,配置详情请点击 问号 查看。

Trigger on: 指定要触发的事件类型。

  • PatchSet created: 当上传一个新的更改或补丁集时(Trigger on为空时默认选择)
  • Draft published:当发布一个修改或补丁集时(Trigger on为空时默认选择)
  • Change abandoned: 当一个更改被放弃时
  • Change merged:当更改合并 / 提交时
  • Change restored:当更改被还原时更改恢复了触发器
  • Comment added: 当指定的投票类别和值有review内容时
  • Reference updated: 当引用(例如分支或标记)更新时

Gerrit使用Jenkins添加Verifed+1标签
https://www.shangyexin.com/2021/08/09/gerrit-jenkins-verify/
作者
Yasin
发布于
2021年8月9日
许可协议