SonarQube 集成 GitLabCI
本文是用于分析SonarQube代码的质量,每次在GitLab上提交代码时都使用GitLab-CI运行器进行检查。
1.SonarQube with GitLab
安装插件GitLab-plugin for SonarQube,转到Adminstration-> MarketPlace,搜索“GitLab”,然后单击安装,安装完成后,重新启动SonarQube

为SonarQube设置GitLab插件:从GitLab获取用户令牌。

转到SonarQube:管理 - >配置 - > GitLab:
GitLab url: add your GitLab url
GitLab User Token: 上一步获取的token

2.Sonar Scanner
您需要一个sonar scanner来扫描您的代码。根据官方文档,SonarQube Scanner被推荐为使用SonarQube分析项目的默认启动器。下载sonar scanner for msbuilder,.net 跟 .net core 都有对应的版本,
这里我们下载.net 的版本(为何不使用.net core,.net core 版本执行shell命令涉及到了一些权限问题,暂时没有找到解决方案),解压缩:

编辑SonarQube.Analysis.xml,修改sonar平台地址,以及用户名密码:

GitLab-CI Runner
我们需要GitLab-CI Runner来帮助我们运行作业并将结果发送回GitLab。
a.在系统中的某个位置创建一个文件夹,例如:C:\ GitLab-Runner。
b.下载x86或amd64的二进制文件并将其放入创建的文件夹中。将二进制文件重命名为gitlab-runner.exe,如下是gitlab runner文件夹

c.运行管理员命令提示符。
d.通过cmd:“gitlab-runner.exe register”注册Runner,输入它一步一步询问的信息。
d1. GitLab Url
d2. 令牌:在CI / CD设置页面中获得的。

d3.描述:跑步者的描述
d4.标签:与Runner相关联的标签,可以稍后在GitLab的UI中进行更改。
d5.Runner执行者:eg.shell,docker等。
e.将Runner作为服务安装并启动它。 (使用内置系统或用户帐户运行服务)
e1. cmd:gitlab-runner install
e2. cmd:gitlab-runner start
f. 编写.gitlab-ci.yml并将其放在GitLab上的根目录下,当存储库发生任何更改时,它将运行这个脚本。
stages: - publishSonar_Publish: stage: publish script: - chcp 65001 - dotNetSonarDemo\sonar_runner.bat only: - master |
编写bat脚本文件:
@ECHO offCALL :buildGOTO:eof:buildFOR /r %%L IN (*.sln) DO (echo Doing %%L ...........call "d:\sonarms\MSBuild.SonarQube.Runner.exe" begin /k:"%%~nL" /v:"1.0" /d:sonar.analysis.mode=publish /d:sonar.gitlab.commit_sha=%CI_COMMIT_SHA% /d:sonar.gitlab.project_id=%CI_PROJECT_ID% /d:sonar.gitlab.ref_name=%CI_COMMIT_REF_NAME% /d:sonar.cs.opencover.reportsPaths="%%~pL%%~nLTest\projectCoverageReport.xml"call "E:\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" %%Lcall "d:\sonarms\MSBuild.SonarQube.Runner.exe" end) |
修改本地代码并推送,查看gitlab自动构建信息如下:


job执行成功,sonar平台上也能查看到扫描记录:

分割线------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sonar 集成gitlab 扫描.net core 出现的问题:

running the scanner for msbuild under local system or network service account is not supported
好多老外也遇到了这个问题:https://github.com/SonarSource/sonar-scanner-msbuild/issues/522,不知道有没有什么好的方式,谁能帮我?
SonarQube 集成 GitLabCI的更多相关文章
- jenkins与SonarQube集成
一.SonarQube 我的理解是,SonarQube就是一个对代码进行分析的平台,其功能可以通过插件扩展.支持多种语言,也支持静态代码检查.发现潜在bug等. 以下是参考信息: 维基百科:https ...
- 【转+整理】jenkins与SonarQube集成
一.SonarQube 我的理解是,SonarQube就是一个对代码进行分析的平台,其功能可以通过插件扩展.支持多种语言,也支持静态代码检查.发现潜在bug等. 以下是参考信息: 维基百科:https ...
- .net持续集成sonarqube篇之 sonarqube集成单元测试
系列目录 通过前面章节我们可以看到,不论怎么构建,单元测试覆盖率一栏总是0% 这是因为单元测试覆盖率报告需要额外集成.这一节我们就讲解如何在sonarqube里集成单元测试覆盖率报告. 这里需要借助O ...
- SonarQube集成Gitlab
SonarQube配置gitlab Gitlab创建访问Token 拷贝此Token至Sonarqube进行配置 检查配置配置成功 可以看到权限内的项目
- .net持续集成sonarqube篇之 sonarqube与jenkins集成(插件模式)
系列目录 Jenkins通过插件集成Sonarqube 通过上一节我们了解了如何配置以使jenkins ci环境中可以执行sonarqube构建,其实Sonarqube官方也提供了jenkins插件以 ...
- DevOps之持续集成SonarQube代码质量扫描
一.SonarQube介绍 SonarQube是一个用于代码质量检测管理的开放平台,可以集成不同的检测工具,代码分析工具,以及持续集成工具.SonarQube 并不是简单地把不同的代码检查 ...
- SonarQube+Jenkins,搭建持续交付平台
前言 Kurt Bittner曾说过,如果敏捷仅仅只是开始,那持续交付就是头条! "If Agile Was the Opening Act, Continuous Delivery is ...
- Jenkins+sonar7.3集成
Jenkins安装请参考:https://blog.csdn.net/CheNorton/article/details/50327825?utm_source=copy Jenkins更新请参考:h ...
- Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)
说在前面的话: 从接到任务到完成共用了7天的时间.正常人用不到这个时间. 此时的功能表现是: 登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自 ...
随机推荐
- IntelliJ IDEA 控制台中文乱码解决方案
配置Intellij的配置文件(在idea安装目录bin目录下) 打开Intellij的根目录,找到下图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加: -Dfile ...
- CoUninitialize引发的一个错误
程序开始已使用CoUninitialize,后边的函数又再次调用CoUninitialize,判断返回值,导致函数提前退出返回异常.
- 88、const、static、extern介绍
一.const与宏的区别 const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编译(编译之前处理)const是编译阶段. 编译检 ...
- python之支付
一,alipay方式 1,国内的alipay支付:我在网上找了好多的教程,大多数都是属于国内内支付的,所以在这里我就不详细介绍了, 操作:https://www.cnblogs.com/xuanan/ ...
- HTML之 一 标签
一 ,标签分类: 1.普通标签: <h1> hello </h1> hello 2.自闭和标签 <hr/> 二,书写html注意事项 1.标签不能交叉嵌套 2. 标 ...
- struct,map,json 互相转换
1.1 struct to json 准备 很简单,使用encoding包可以互相转换,没什么好说的,但是有几点注意: 1.结构体内需要序列化的字段首字母大写(遵循驼峰式命名),不需要序列化的字段小写 ...
- 洛谷P1443 马的遍历
https://www.luogu.org/problemnew/show/P1443 很经典的搜索题了,蒟蒻用广搜打的 不说了,上代码! #include<bits/stdc++.h> ...
- JDBC数据库
JDBC是Java程序连接和存取数据库的应用程序接口(API),包括两个包:java.sql和javax.sql. 用JDBC访问数据库的一般步骤: 1.建立数据源 2.装入JDBC驱动程序:使用Cl ...
- 进军微信小程序之准备工作
小程序这么火,不去浪一浪怎么行? 更何况,现在微信“赦免”了个人认证,又更新了web开发工具,现在正是搞搞小程序的最佳时期! 那么一起来看看要做什么准备吧~ 官方的文档很详细,可参考:小程序官 ...
- codeforces 1066 B heater
菜鸡只配做水题 思路就很简单嘛:肯定扩展的越靠后边越好了 0 0 1 0 1 1 0 0 假设范围是3 ,第一个1一定要选上,第2.3个肯定选3啦,越靠后边就一定能节省更多的点,没看出来和子问题有什么 ...