使用gitlab runner 进行CI(三):使用sonarqube做c++的静态检查

您所在的位置:网站首页 集成ⅰc 使用gitlab runner 进行CI(三):使用sonarqube做c++的静态检查

使用gitlab runner 进行CI(三):使用sonarqube做c++的静态检查

2024-06-03 06:35| 来源: 网络整理| 查看: 265

1. gitlab-ci.yml的配置

1.1 几个基本概念

1.2 使用CI进行代码检查demo

2. Sonarqube安装和配置

2.1 Sonarqube安装

2.2 数据库配置

2.3 sonar-scanner安装

2.4 sonar-cxx插件安装

2.4 启动

2.5 gitlab插件安装

2.6 创建项目

3. Gitlab-CI配置

4. 进阶配置

4.1 规则配置

4.2 阈值设置

4.3 设置自动将扫描结果以评论形式写到gitlab

结语

前两次我们讲了如何配置gitlab runner(坑挖了挺久,因为是挺久前弄的,后来交给其他人维护了···)。本节主要讲gitlab-ci的一些基本概念,并通过配置使用sonarqube进行静态检查来进行实践。

1. gitlab-ci.yml的配置

gitlab ci通过项目内的.gitlab-ci.yml进行配置。语言是YAML。

1.1 几个基本概念

pipeline: 流水线,也就是整个CI检查的过程 job: 工作项,可以取任意名字,可以建立任意个工作项,工作项是流水线的一个过程。 stage: 每个工作项可以属于一个stage,类似于分组 script: script是工作项中执行具体检查的shell 命令 before_script: 所有工作项执行前会执行的命令,一般用于配置环境。

example:

before_script: ##设置环境变量 - export PATH=$PATH ## 定义有哪些stages stages: - analysis - build - test - deploy ##job名称 cppcheck: stage: analysis ##具体命令 script: - source ~/.bashrc - echo hello_ci tags: ## 执行此项job的runner,设置见本系列第二节 - cppcheck 1.2 使用CI进行代码检查demo

1.建立一个测试项目,并为其设置runner(参考 使用gitlab runner 进行CI(二):gitlab runner的安装与配置) 2.创建.gitlab-ci.yml文件,并将上文example内容拷贝至该文件 3.提交修改 此时,在项目的CI/CD-》Pipelines页面(或Job),我们就可以看到pipeline的运行情况:

图片

其中Status指示是否成功,点击Stages可进入相应Stage运行的详细情况:

图片

可以看到是依次执行了before_script和job中的script命令。并最终成功了。

2. Sonarqube安装和配置

SonarQube是一种自动代码审查工具,用于检测代码中的静态错误,漏洞以及代码异常(如命名规范、代码重复等)。支持C++、Java、Python等多种语言,能够方便的和git、Jenkins、Gitlab-runner等集成,可以方便的作为代码PR前的前置条件。

图片

2.1 Sonarqube安装

PS: 安装平台为Ubuntu 为了能使用后面需要用到的C++扫描插件,我们安装7.6版本(这个插件现在支持更高版本的了,还没试过):binaries.sonarsource.com 解压即可,假设我们解压的路径为~/sonarqube。

2.2 数据库配置

我这边暂时使用mysql,不过sonarqube最新的版本已经放弃了mysql的支持,可以使用其他的数据库。

sudo apt update #更新软件源 sudo apt install mysql-server #安装mysql

修改sonarqube的配置(~/sonarqube/conf/sonar.properties): 其中jdbc.username和jdbc.password都是我们自己的mysql用户名和密码

# User credentials. # Permissions to create tables, indices and triggers must be granted to JDBC user. # The schema must be created first. sonar.jdbc.username=root sonar.jdbc.password=123456 #----- Embedded Database (default) # H2 embedded database server listening port, defaults to 9092 #sonar.embeddedDatabase.port=9092 #----- DEPRECATED #----- MySQL >=5.6 &&


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3