配置gitlab通过sonar扫描结果是否同意merge request
本文主要介绍gitlab发起合并请求时,通过jenkins触发sonarqube对gitlab项目进行扫描,之后将扫描结果返回到merge request,如果扫描成功则自动同意合并请求,如果扫描不成功则强制关闭合并请求。
环境搭建这里不过多赘述,排坑教程我的博客里也有,各位看官自便。
sonar配置
在soanr中 配置——网络调用
之后创建,名称随便填,URL填你的 jenkins网址/soanrqube-webhook/
创建完成就是这样,第一次创建最后信息那里不会显示东西
jenkins配置
jenkins要安装 Sonar Quality Gates 插件
在 系统管理——系统设置 中设置插件,各项设置的含义都很明显,不多说
之后配置项目
新建一个maven项目,之后做如下配置
根据需要设置构建触发器,我这里只勾选了当发起merge request时触发jenkins构建。这里的url和下面生成的token要添加到gitlab的webhook里
我们在构建这里选择了execute sonarqube scanner选项。gitlab会在发往jenkins的hook中会发送一些变量供我们在jenkins中使用,大家可以参考:https://github.com/jenkinsci/gitlab-plugin#add-a-note-to-merge-requests,完整的变量图我放在最后。
gitlab配置
首先要确定gitlab工程里这里的设置是开启的
创建webhook
至此设置完毕,项目pom文件设置和maven设置这里就不多说了,我的其他文章中有讲。
执行起来的效果就是,当gitlab发起合并请求时,触发jenkins构建,jenkins触发sonar扫描代码,之后把扫描的结果返回到gitlab。
sonar的扫描结果。因为我的代码有不符合规范的地方,所以上面jenkins构建的状态是失败的。
gitlab上返回的结果
完整的变量图:
参考文章:http://mini.eastday.com/a/190913032104233.html
- 点赞
- 收藏
- 分享
- 文章举报
- idea2019.2配置sonar后代码扫描没有结果
- SQL存储过程测试(8)——当待测存储过程没有返回值的时候 如何判断测试结果是否通过
- 通过 Docker 配置 yum 和 gitlab 容器
- 9.4 编写一个程序,通过执行结果分析在引用类对象时是否执行类的构造函数与析构 函数。
- 通过 .gitlab-ci.yml配置任务-官方配置文件翻译
- SonarQube安装、配置、扫描代码
- 通过windows任务计划来备份数据库以及检测apache是否正常运行-sever 2008 Apache优化配置
- 持续集成-通过 .gitlab-ci.yml配置任务
- 通过 context:component-scan element 配置自动扫描加载Spring Bean
- SE955 激光扫描头设置 通过SSI串口进行设置,wince下SE955激光头,SE655红光头的配置
- Spring MVC 通过@Value注解读取.properties配置结果为null
- Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?
- 使用TextTest来做认定测试——本质是通过diff对比程序的运行log输出,来看测试结果和预期结果是否相同
- Gitlab管理之十四–在Gitlab中配置wiki和通过Gollum管理wiki
- jenkins+gitlab+sonarqube扫描java/maven项目
- a 标记点击后通过ajax返回的布尔值结果进行判断是否在新窗口打开链接
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。
- SourceTree通过配置SSH来链接GitLab
- 配置SonarQube,Jenkins集成扫描Android项目
- SQL存储过程测试(6)——当待测存储过程返回行集的时候 如何判断测试结果是否通过