Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证

Gerrit Trigger插件集成了Gerrit代码审查,当创建一个“patch set”时触发Jenkins构建,本文档介绍Gerrit Trigger插件配置及使用方法。

目录

  • 安装Gerrit Trigger插件
  • Gerrit 访问权限配置
  • Jenkins Gerrit Server配置
  • Gerrit Trigger配置

安装Gerrit Trigger插件

进入jenkins【系统管理】-> 【插件管理】中下载插件,如果jenkins服务器没有联网,可以下载hpi文件离线安装。Gerrit Trigger插件依赖SCM API和Pipeline: API这两个插件,依次下载安装这3个插件:

  • SCM API:https://plugins.jenkins.io/scm-api/#releases
  • Pipeline: API:https://plugins.jenkins.io/workflow-api/#releases
  • Gerrit Trigger:https://plugins.jenkins.io/gerrit-trigger/#releases

Gerrit 访问权限配置

1、在Gerrit平台注册一个jenkins用户,然后设置一个SSH key。

2、Gerrit Web页面,进入Browse > Groups > Service Users,将jenkins 用户添加到这个分组中。(Gerrit v3.3之前的CI组名称为Non-Interactive Users)

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第1张图片

3、Gerrit Web页面,Browse > Repositories > [仓库名称] > Access > Edit

  • Reference: refs/*
    • Read: ALLOW for Service Users
  • Reference: refs/heads/*
    • Label Code-Review: -1, +1 for Service Users
    • Label Verified: -1, +1 for Service Users

Jenkins Gerrit Server配置

Gerrit Trigger插件安装成功后,进入Manage Jenkins > Gerrit Trigger,点击添加Gerrit服务器。用户名和邮箱填写在Gerrit平台注册的jenkins用户和邮箱。

如果Gerrit Trigger触发器在master节点(也就是jenkins服务器本身)运行,配置SSH Keyfile时,需要在jenkins服务器配置ssh秘钥,如果你的jenkins使用docker搭建,先进入jenkins:docker exec -it jenkins bash,然后使用如下命令创建ssh秘钥:

$ ssh-keygen -m PEM -t rsa -C "邮箱地址"
ssh-keygen -m PEM -t ed25519 -C "邮箱地址"

生成的私钥地址为:

/var/jenkins_home/.ssh/id_rsa
/var/jenkins_home/.ssh/id_ed25519

将它填入SSH Keyfile中。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第2张图片

此外,还需要在gerrit平台上创建SSH keys,将 /var/jenkins_home/.ssh/id_rsa.pub的内容添加到gerrit平台jenkins用户的SSH keys中。

Gerrit Trigger配置

创建一个demo项目,选择运行节点为master节点;如果当前项目不需要对源码进行处理,可以不设置源码管理;设置触发器为【Gerrit event】。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第3张图片

Gerrit Trigger插件提供了很多参数,比如GERRIT_CHANGE_SUBJECT是提交日志。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第4张图片

选择配置好的gerrit服务器和触发条件,比如选择Patchset Created表示push到gerrit后触发。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第5张图片

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第6张图片

接下来配置仓库和分支,表示在这个仓库分支有提交就触发此job。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第7张图片

接下来可在构建步骤中添加构建,比如对提交日志格式进行检查。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第8张图片

提交代码到gerrit或者修改某次提交后,会触发此Jenkins项目执行。

还可以添加静态代码检查、代码编译等操作,执行成功会对此次提交执行Verified+1操作,失败Verified-1 。

Jenkins持续集成:使用Gerrit Trigger插件实现代码提交自动验证_第9张图片

--THE END--

相关阅读:

  1. 代码评审平台Gerrit安装配置方法介绍
  2. Gerrit REST API简单介绍

你可能感兴趣的:(#,持续集成,其它,jenkins,持续集成,gerrit,gerrit,trigger)