zoukankan      html  css  js  c++  java
  • sonar-gerrit plugin配置

    配置 sonar-gerrit plugins steps
    pre-condition:
    1. Sonarqube(5.5及以上,本文使用的版本为6.1.3)
    关于如何安装配置Sonarqube,请参考其他文档
    2. Gerrit(2.11及以上,本文使用版本为2.13.2)
    关于如何安装配置Gerrit,请参考其他文档
    3. Jenkins(1.7及以上,本文使用版本为2.35)
    关于如何安装配置Jenkins,请参考其他文档
    4. Gerrit-Trigger (本文使用版本为2.23)
    5. Sonar-scanner (本文使用版本为2.8)
    6. sonar-gerrit-plugin(本文使用版本为1.0.7.6)
    7. sonar-gerrit-plugin-2.3.0.jar

    Steps:
    1. sonar-gerrit-plugin-2.3.0.jar 将jar包复制到$SONARQUBE_HOME/extensions/plugins/下

    2. 以admin用户登录sonarqube dashboard -> Administration -> Security -> Users

    3. 选择要使用的user生成user token,该token作为jenkins登录sonarqube的用户凭证,保存好token。
    4. 登录jenkins -> 系统管理 -> 系统设置 -> SonarQube servers
    Name:${SonarQube servername}
    Server URL : $SONARQUBE_URL
    Server version : 5.3 or higher
    Server authentication token:填入step3生成的token
    点击保存

    5. 以admin用户登录jenkins -> 系统管理 -> Gerrit Trigger
    参考jenkins-gerrit-config.md内容配置
    *****注意*****
    点击高级
    check Use REST API
    Gerrit HTTP Username(jenkins发送sonarqube扫描结果至gerrit使用的账户)
    Gerrit HTTP Password(jenkins发送sonarqube扫描结果至gerrit使用的账户)
    check Enable Code-Review
    check Enable Verified
    点击保存

    6. 以admin用户jenkins -> 系统管理 -> Global Tool Configuration
    SonarQube Scanner -> SonarQube Scanner安装
    SONAR_RUNNER_HOME ${SONAR_RUNNER_HOME}
    点击保存

    7. 创建jenkins job
    新建-> 新建一个maven风格的项目
    源码管理:选择Git
    Repository URL: gerrit 代码仓库
    Credentials:选择连接gerrit账号
    Branches to build:*/master
    构建触发器
    选择Gerrit Event
    Gerrit Trigger :
    Choose a Server 选择step5的gerrit servername
    Trigger on : 根据项目需要修改
    参考jenkins-gerrit-config.md内容配置

    8. Post Steps 增加Execute SonarQube Scanner
    其他保留设为空
    Additional arguments 增加以下配置:
    -X (打印debug级别日志)
    -DGERRIT_SCHEME=http (以http协议连接gerrit)
    -DGERRIT_HTTP_AUTH_SCHEME=digest (gerrit默认的http认证)
    -DGERRIT_HOST=gerrit.me (gerrit host)
    -DGERRIT_HTTP_PORT=80  (访问gerrit web的端口)
    -DGERRIT_HTTP_USERNAME=$gerrit_user (jenkins登录gerrit使用的账号)
    -DGERRIT_HTTP_PASSWORD=$password (jenkins登录gerrit使用的账号)
    -Dsonar.analysis.mode=preview (要生成sonar-gerrit-plugin要求的报告,必须使用preview mode)
    -Dsonar.issuesReport.html.enable=true (sonar报告生成html格式)
    -Dsonar.report.export.path=sonar-report.json (sonarqube报告的格式)

    9. 增加构建后操作 Post Action
    SonarQube Settings:
    SonarQube URL: SonarQube 的访问地址
    SonarQube report path: .sonar/sonar-report.json (sonarscanner扫描完成后会在workspace下生成.sonar文件夹,sonar-report.json报告存放在.sonar下)
    Filter Settings:
    Report issues having severity level higher or equal to:Major (反馈至gerrit的时候的issue 级别,可修改)
    其他保持默认,点击保存

    举例如下:
    当向gerrit trigger监听的project/branch发生变化时,即可触发jenkins job execution, 执行效果参考
    https://wiki.jenkins-ci.org/display/JENKINS/Sonar+Gerrit

    jenkins wiki写的比较简略,其他隐藏条件没有写的很清楚
    花了一天时间,查了各种github, stackoverflow,还拉了插件源码下来,终于搞定了,写个blog纪念一下。

    补充踩过的坑:

    如果不用admin账户进行操作,确保以下几点:

    1. jenkins用于gerrit的账户属于NonInactive Users

    2. 监听的project继承的user group必须包含jenkins user且属于owner权限

    另一坑:

    jenkins管理员邮箱必须与smtp认证的账号保持一致,才能发邮件

  • 相关阅读:
    Python基础
    thinkphp中session跨域问题
    thinkphp实现短信验证注册
    微信公众号支付流程(Node实现)
    支付宝手机网站支付流程(Node实现)
    浏览器打开URL的方式
    Jmeter取样器之Java Request
    获取Tomcat更详细的日志
    使用PowerDesigner转换不同数据库的表结构
    NameValuePair在API22过时问题
  • 原文地址:https://www.cnblogs.com/spillage/p/6181934.html
Copyright © 2011-2022 走看看