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
问题截图:
搭建步骤参考:
https://www.cnblogs.com/kevingrace/p/5651447.html
说点题外话:步骤非常详尽,基本可以照着走。美中不足的一点是搭建环境没有描述,用户创建更清楚一点。因为Gitlab/Gerrit/Jenkins本身既有web界面的用户,又有服务器上同名的用户,不写清楚,有的步骤就弄晕了。但是确实是网上看到最全的一个。
问题解决:
网上查找了各种资料,实在是没办法从配置上解决这个问题。只好抛弃了配置方式,使用脚本的方式,达到了预期目的。
- 在Jenkins job中放弃了使用Git来下载源代码,因为即使配置了,也不能在当前工作区下载最新的源码。
- 构建触发器仍然选择Gerrit event。
- 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相关推荐
- Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知
Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 文章目录 Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 1.实 ...
- Gitlab自动触发Jenkins构建打包
一.目的 在部门的测试环境中,开发人员一旦向gitlab仓库提交成功代码,gitlab就会自动触发jenkins构建项目.当然在构建后还可以添加项目部署或者自动化测试的脚本.这里只针对测试环境. 二. ...
- GitLab 自动触发 Jenkins 构建
GitLab 是当前应用非常广泛的 Git Hosting 工具,Jenkins 是非常牛逼的持续集成工具.尽管 GitLab 有内建的 GitLab CI,但它远没有 Jenkins 那么强大好用. ...
- Gitlab自动触发Jenkins构建项目
Gitlab自动触发Jenkins构建项目 一.前提 Gitlab已安装配置好. Jenkins已安装Gitlab plugin. 二.配置jenkins中Job 1.勾选触发器下的gitlab触发器 ...
- P8-07-23 在 GitLab 提交代码后自动触发 Jenkins 构建;使用禅道进行项目管理
DevOps 运维开发一体化 持续集成 CI GitLab 用户分组 添加用户 用户权限 访客 开发者 Dev/master主分支 测试 主管 拥有者 里程碑:项目管理与质量管理 禅道(免费开源版本) ...
- Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)
SVN Publisher Plugin:https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher 构建完成后的文件,比如Maven打的war ...
- 通过URL自动触发Jenkins构建任务
方法一: 进入jenkins安全设置,开启安全域及授权策略 2.在用户设置处生成api token,复制生成的token 3.选择测试项目-配置-构建触发器,选择触发远程构建,将token粘贴在身份验 ...
- jenkins构建失败后将信息发送到企业微信
创建一个用于发送错误消息的notice_wrong_model 添加参数 构建后操作选择运行python脚本 # -*- coding: utf-8 -*-import os import reque ...
- 云效触发Jenkins自动构建
Jenkins设置 通过URL触发Jenkins构建 [root@komatsupc ~]# curl -X POST http://(userid):(usertokenstring)@https: ...
- Jenkins 构建CI/CD(一看就会)
文章目录 一.CI / CD 1.概念 2.CI / CD 方法简介 二.jenkins介绍 1.Jenkins概述 2.Jenkins目标 3.Jenkins特性 4.产品发布流程 三.部署应用Je ...
最新文章
- python数据插值_【Python】【数据分析】缺失值处理——插值
- java list原理_Java集合:ArrayList的实现原理
- 一步一步学Silverlight 2系列(12):数据与通信之WebClient
- 公有云与私有云的差别(转)
- 红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!
- CAD地形图等高线标高批量取整工具,解决等高线标高出现小数的问题,等高线高程批量取整,在指定限差内将等高线标高修改为最接近的整数
- Java实现PDF生成(Word文档转Pdf)
- 机器学习中的数学——距离定义(二十一):JS散度(Jensen–Shannon Divergence)
- 天网防火墙V2.61学习教程
- java实现NC数据等值线等值面可视化
- Android Studio 使用夜神模拟器查看apk打印日志
- 把AppData目录挪到D盘的方法方法
- Javaweb(二)制作调查问卷
- springboot微信点餐系统的设计与实现 毕业设计-附源码221541
- 【码农说码】手撕锟斤拷,彻底搞懂GB2312,GBK,Big5,ASCII,UTF-8,UTF-32的前世今生
- Unity2018新功能之2D Animation2D动画
- 清除谷歌浏览器input框黄色底色
- 谷歌浏览器自带翻译失败解决方案
- 计算机自带的配置检测,Windows10系统自带电脑硬件设备检测工具的使用步骤
- 2020-10-03 Shell编程
热门文章
- python抓取微博评论破亿_《战狼Ⅱ》破50亿 Python爬虫抓取获取12万条影评分析看它在说...
- 大话西游手游服务器地址修改,大话西游手游怎么转区?大话西游手游转区移民条件一览...
- Fiddler抓包基础使用
- dy极速版-艳云脚本云控系统
- 思考技术人员需要沉淀的能力
- 基于PGC相位生成载波调制及其解调算法实例分析
- Ubuntu18.04 sqlite3安装及其应用
- python软件操作步骤_python+pywinauto C/S架构软件基本操作
- Mac电脑进入恢复模式详细教程
- android 仿qq 功能,Android仿QQ、新浪相册的实现