Jenkins获取igerrit当前提交代码

利用Jenkins+ Git + igerrit搭建持续化构建平台。大体过程为:code提交到igerrit服务器,触发编译、代码审查后,Merger到Git仓库中。

问题:通过Repo通过repo获取项目(假设项目包含100个仓库)代码后,代码为Git仓库的代码。并不包含igerrit当前的提交(因为没有Merge)。那么如何获取igerrit当前提交,并且获取当前提交最新的版本?

解决:配置Gerrit Event触发的Job,再Build History对应的执行记录中,有参数这一选项。里面定义了许多环境变量。如:

GERRIT_EVENT_TYPE=patchset-created
GERRIT_REFSPEC=refs/changes/xxx/xxx/x
GERRIT_PROJECT=project路径
  • 在Jenkins构建(执行shell)中,使用GERRIT_REFSPEC,即可。
# 省略
..... 
# 取得项目代码后
repo sync
# 进入到对应仓库
cd xxx
# 将igerrit上的提交(refs/changes/xxx/xx/x)取下来
git pull origin $GERRIT_REFSPEC
# 开始编译即可
Jenkins系列
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐