Skip to content
笨兔儿 edited this page Sep 20, 2016 · 4 revisions

#sputnik 安装

sputnik 文档地址 http://labs.criteo.com/2015/02/static-code-analysis-do-it-the-right-way/

sputnik git地址 https://github.com/TouK/sputnik

  • 下载已经打包的sputnik,把sputnik安装到jenkins服务器,如果有slave的也得安装,git地址会有很详细的安装介绍,要注意就是一些配置
  • 在安装的时候最好根据文档提供的建议目录安装,安装完后在sputnik根目录创建gerrit.properties
  • gerrit.properties文件内容可以复制文档提供内容,需要修改的有

connector.type=gerrit 不变

connector.host=your.host.com 填写自己gerrit的host就可以

connector.path=/gerrit 如果没有path就可以配置为空

connector.port=8080 如果端口为80配置可以为空

connector.username=sputnik 用户名和密码是gerrit的用户名和密码,是用code review的用户,密码在用户配置里面有http password生成的密码

connector.password=PassWd

#jenkins sputnik 配置

  • gerrit trigger-->Trigger on多配置几个选项就是代码push到gerrit层就触发构建
  • git--->高级--Refspec 必须要配置为$GERRIT_REFSPEC,不然不会触发构建
  • git--->Additional Behaviours--->Strategy for choosing what to build 配置项选Gerrit Trigger
  • 以上jenkins配置完成后基本可以跑来,但是要使用sputnik自动code review还少些配置,回到github文档复制到Execute Shell里面
/opt/sputnik/bin/sputnik --conf /opt/sputnik/gerrit.properties --changeId $GERRIT_CHANGE_ID --revisionId $GERRIT_PATCHSET_REVISION

可能是gerrit trigger的插件版本的原因,在jenkins里面拿不$GERRIT_CHANGE_ID $GERRIT_PATCHSET_REVISION,我们使用个土办法,就是使用shell命令获取

GERRIT_KEY_WORD=$(git log -1|tail -1)
GERRIT_CHANGE_ID=$(git log -1|tail -1|cut -d " " -f 6)
GERRIT_PATCHSET_REVISION=$(git rev-parse HEAD)
GIT_LOG_KEY_WORD="Change-Id"

if [[ "$GERRIT_KEY_WORD" =~ $GIT_LOG_KEY_WORD ]]; then
    /opt/sputnik/bin/sputnik --conf /opt/sputnik/gerrit.properties --changeId $GERRIT_CHANGE_ID --revisionId $GERRIT_PATCHSET_REVISION
    echo "exit 0 workaround"
fi

配置完以上配置后就能正常的使用sputnik来code review,Execute Shell的添位置顺序也会导致执行顺序的变化

  • jenkins打包给gerrit打分需要在gerrit trigger (Jenkins-->Gerrit Trigger)全局配置里面配置 Gerrit Reporting Values(包涵Verify,Code Review)根据实际情况配置好分数

  • 注意点jenkins连接gerrit和sputnik连接gerrit不能使用同一个帐号,不然打分时会有覆盖的情况发生

  • 总结在安装和使用sputnik的时候一定要分清楚jenkins打分及sputnik打分,要一步步来实现及测试

Clone this wiki locally