SonarQube+Gitlab从零搭建自动化持续代码扫描质量平台
一、前言
我们都知道代码质量对于一个项目的重要性,如果开发人员迫于业务压力,一味追求项目开发进度,往往会容易形成大量的“烂代码”,那么测试人员势必会发现很多低级缺陷,甚至连冒烟测试都无法通过,这样势必会浪费很多时间,延误测试进度。假如我们在前期就借助一些代码扫描工具,然后针对这些扫描出的问题再进一步分析,这样轻易地可以发现一些真正代码问题;
其他的废话就不多说,今天我们就从gitlab服务器搭建、Sonarqube 安装配置、gitlab与Sonarqube 的整合集成三方面入手,从零搭建开始搭建一个自动化持续代码扫描质量平台
二、 gitlab 服务器搭建
我们这里使用的是docker进行搭建,如果你还不知道怎么安装docker 的可以问度娘或者参考:juejin.cn/post/684490…
1、安装镜像
docker pull gitlab/gitlab-ce复制代码
2、启动容器
sudo docker run -d \ --hostname xxxx.xxxx.xx \ --name gitlab \ --restart always \ --publish 30001:22 --publish 30000:80 --publish 30002:443 \ --volume $HOME/gitlab/data:/var/opt/gitlab \ --volume $HOME/gitlab/logs:/var/log/gitlab \ --volume $HOME/gitlab/config:/etc/gitlab \ gitlab/gitlab-ce复制代码
启动容器之后,我们执行docker ps(查看正在运行的容器列表)
发现我们的gitlab 容器已启动,然后我们访问:http://localhost:30000/
发现仍然还是访问不了~~
那是因为gitlab 还未启动,我们需要
3、 进入容器
docker exec -it 636347c22ded /bin/bash复制代码
4、 初始化服务
gitlab-ctl reconfigure复制代码
注意: 如果网站访问不了,可以重启gitlab服务
gitlab-ctrl restart复制代码
5、 访问gitlab 网页
三、 Sonarqube 安装配置
1、下载
注: 版本: 8.7.1
下载链接: www.sonarqube.org/downloads/ (下载社区版就可以了)
2、解压进入/bin,效果如下
3、启动
根据自己的操作系统,进入相应的目录,我这边选择的是macosx-universal-64,然后执行: ./sonar.sh console,效果如下:
可看到sonarqube 已启动成功
4、访问SonarQube网址,http://localhost:9000/
四、 gitlab与Sonarqube集成
我前面花了挺大篇幅来介绍gitlab与SonarQube 的安装搭建,为的就是替最后的集成做准备;当然这需要你对Gitlab-CI 有一定的了解,如果你在这一块领域还是个小白,可以网上找相关资料熟悉,或者看我另一篇文章: react 项目Jest+Enzyme单元测试集成至gitlab 的后半部分;
废话不多说,我们现在就来介绍如何实现代码提交、合并前进行自动化代码扫描并实现Pull Request 修饰,具体效果如图:
如果代码扫描没通过,不仅无法进行合并并会通过微信/云之家进行消息通知!
一、安装SonarQube 社区版分支插件
sonarqube社区版不支持branch功能,每个project都只能展示一个分支。要支持多个分支共同展示功能需要安装sonarqube-community-branch-plugin 插件,当然我选择这个插件还有另外一个重要原因,它可以支持pull Request 修饰的功能
插件版本: v1.7.0 (根据不同SonarQube 版本选择对应插件版本)
1、下载对应版本jar包
2、复制jar包 到SonarQube 下的extensions/plugins/ 和 lib/common/目录下
3、重启SonarQube
4、用管理员账号登陆SonarQube 配置,并配置Server base URL
5、关于pull Request 修饰后面介绍
二、GitLab 的配置
1、重新注册一个用户名为SonarQube 的用户
2、登陆超级管理员账号进行Approve,SonarQube账号生效
3、登陆SonarQube 账号
4、创建 GitLab OAuth app(将GitLab用作OAuth提供程序的应用程序)
点击保存,会自动跳转到另一个页面,里面有Application ID 和 Secret 信息,千万记得记得这个要保存起来,SonarQube 那里会用到这两个信息;
5、生成 personal access token(用于修饰合并请求,留评论的账号的Access Token)
点击创建,之后token 生成,记得把这个token 记下,SonarQube 里面gitlab 的集成需要使用到
到这里,gitlab 的配置算是over 了~
三、SonarQube 的配置
作者:Catherine同学
链接:https://juejin.cn/post/7021019542130262024