问题描述:

使用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

问题截图:

搭建步骤参考:
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 testif [ "x$?" == "x0" ] ; then   #成功则Verified +1ssh -x -p 29418 jenkins@192.168.xxx.xx gerrit review --project $GERRIT_PROJECT --verified 1 $GERRIT_PATCHSET_REVISION
elsessh -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分。

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

  1. Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知

    Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 文章目录 Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 1.实 ...

  2. Gitlab自动触发Jenkins构建打包

    一.目的 在部门的测试环境中,开发人员一旦向gitlab仓库提交成功代码,gitlab就会自动触发jenkins构建项目.当然在构建后还可以添加项目部署或者自动化测试的脚本.这里只针对测试环境. 二. ...

  3. GitLab 自动触发 Jenkins 构建

    GitLab 是当前应用非常广泛的 Git Hosting 工具,Jenkins 是非常牛逼的持续集成工具.尽管 GitLab 有内建的 GitLab CI,但它远没有 Jenkins 那么强大好用. ...

  4. Gitlab自动触发Jenkins构建项目

    Gitlab自动触发Jenkins构建项目 一.前提 Gitlab已安装配置好. Jenkins已安装Gitlab plugin. 二.配置jenkins中Job 1.勾选触发器下的gitlab触发器 ...

  5. P8-07-23 在 GitLab 提交代码后自动触发 Jenkins 构建;使用禅道进行项目管理

    DevOps 运维开发一体化 持续集成 CI GitLab 用户分组 添加用户 用户权限 访客 开发者 Dev/master主分支 测试 主管 拥有者 里程碑:项目管理与质量管理 禅道(免费开源版本) ...

  6. Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)

    SVN Publisher Plugin:https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher 构建完成后的文件,比如Maven打的war ...

  7. 通过URL自动触发Jenkins构建任务

    方法一: 进入jenkins安全设置,开启安全域及授权策略 2.在用户设置处生成api token,复制生成的token 3.选择测试项目-配置-构建触发器,选择触发远程构建,将token粘贴在身份验 ...

  8. jenkins构建失败后将信息发送到企业微信

    创建一个用于发送错误消息的notice_wrong_model 添加参数 构建后操作选择运行python脚本 # -*- coding: utf-8 -*-import os import reque ...

  9. 云效触发Jenkins自动构建

    Jenkins设置 通过URL触发Jenkins构建 [root@komatsupc ~]# curl -X POST http://(userid):(usertokenstring)@https: ...

  10. Jenkins 构建CI/CD(一看就会)

    文章目录 一.CI / CD 1.概念 2.CI / CD 方法简介 二.jenkins介绍 1.Jenkins概述 2.Jenkins目标 3.Jenkins特性 4.产品发布流程 三.部署应用Je ...

最新文章

  1. python数据插值_【Python】【数据分析】缺失值处理——插值
  2. java list原理_Java集合:ArrayList的实现原理
  3. 一步一步学Silverlight 2系列(12):数据与通信之WebClient
  4. 公有云与私有云的差别(转)
  5. 红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!
  6. CAD地形图等高线标高批量取整工具,解决等高线标高出现小数的问题,等高线高程批量取整,在指定限差内将等高线标高修改为最接近的整数
  7. Java实现PDF生成(Word文档转Pdf)
  8. 机器学习中的数学——距离定义(二十一):JS散度(Jensen–Shannon Divergence)
  9. 天网防火墙V2.61学习教程
  10. java实现NC数据等值线等值面可视化
  11. Android Studio 使用夜神模拟器查看apk打印日志
  12. 把AppData目录挪到D盘的方法方法
  13. Javaweb(二)制作调查问卷
  14. springboot微信点餐系统的设计与实现 毕业设计-附源码221541
  15. 【码农说码】手撕锟斤拷,彻底搞懂GB2312,GBK,Big5,ASCII,UTF-8,UTF-32的前世今生
  16. Unity2018新功能之2D Animation2D动画
  17. 清除谷歌浏览器input框黄色底色
  18. 谷歌浏览器自带翻译失败解决方案
  19. 计算机自带的配置检测,Windows10系统自带电脑硬件设备检测工具的使用步骤
  20. 2020-10-03 Shell编程

热门文章

  1. python抓取微博评论破亿_《战狼Ⅱ》破50亿 Python爬虫抓取获取12万条影评分析看它在说...
  2. 大话西游手游服务器地址修改,大话西游手游怎么转区?大话西游手游转区移民条件一览...
  3. Fiddler抓包基础使用
  4. dy极速版-艳云脚本云控系统
  5. 思考技术人员需要沉淀的能力
  6. 基于PGC相位生成载波调制及其解调算法实例分析
  7. Ubuntu18.04 sqlite3安装及其应用
  8. python软件操作步骤_python+pywinauto C/S架构软件基本操作
  9. Mac电脑进入恢复模式详细教程
  10. android 仿qq 功能,Android仿QQ、新浪相册的实现