Gerrit触发jenkins构建job后,不能给review的代码Verified+1

问题描述:

使用Gitlab+Gerrit+Jenkins搭建CI环境,在完成各项配置以后,在Gerrit和Jenkins对接的时候出现问题,在develper提交代码Review后,能够触发Jenkins build job,但是jenkins build成功以后,Gerrit上始终不能给代码Verified+1.

各个组件版本如下:
gerrit2.12.2 + jenkins2.176.3 + gerrit trigger 2.30.5

问题截图:
预期是构建成功后,Verified + 1  jenkins在这里插入图片描述

搭建步骤参考:
https://www.cnblogs.com/kevingrace/p/5651447.html
说点题外话:步骤非常详尽,基本可以照着走。美中不足的一点是搭建环境没有描述,用户创建更清楚一点。因为Gitlab/Gerrit/Jenkins本身既有web界面的用户,又有服务器上同名的用户,不写清楚,有的步骤就弄晕了。但是确实是网上看到最全的一个。

问题解决:

网上查找了各种资料,实在是没办法从配置上解决这个问题。只好抛弃了配置方式,使用脚本的方式,达到了预期目的。

  1. 在Jenkins job中放弃了使用Git来下载源代码,因为即使配置了,也不能在当前工作区下载最新的源码。
  2. 构建触发器仍然选择Gerrit event。
    在这里插入图片描述
    在这里插入图片描述
  3. Gerrit trigger配置不变。

在这里插入图片描述
4.关键在构建脚本这里
在这里插入图片描述


```bash
#!/bin/bash
cd ${WORKSPACE}
rm -rf *
git init
#pull codes from gerrit
git pull ssh://jenkins@192.168.xxx.xx:29418/$GERRIT_PROJECT $GERRIT_REFSPEC

#do some test

if [ "x$?" == "x0" ] ; then   #成功则Verified +1
   ssh -x -p 29418 jenkins@192.168.xxx.xx gerrit review --project $GERRIT_PROJECT --verified 1 $GERRIT_PATCHSET_REVISION
else
    ssh -x -p 29418 jenkins@192.168.xxx.xx gerrit review --project $GERRIT_PROJECT --verified -1 $GERRIT_PATCHSET_REVISION
    #ssh -x -p $gerrit_port $user@$gerrit_addr gerrit review --project $GERRIT_PROJECT --code-review -2 $GERRIT_PATCHSET_REVISION
fi
解释:
$GERRIT_PROJECT  
$GERRIT_REFSPEC 
$GERRIT_PATCHSET_REVISION
这三个参数都是gerrit trigger plugin自带参数,$GERRIT_REFSPEC 指向最新提交的代码。

我这里只需要jenkins能够给通过build的代码加上Verfied +1 即可。

jenkins用户既是jenkins服务器linux用户(使用该用户启动jenkins服务),又是gerrit 的一个用户(配置在gerrit.config同目录下的用户配置问件passwords中)。jenkins用户的id_rsa.pub要配置到gerrit 用户的ssh中。

这种配置才能保证jenkins能够执行git pull命令下载代码到workspace中,又能保证jekins gerrit用户能够给review的代码打上Verified分。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值