❶ SonarQube+Gitlab从零搭建自动化持续代码扫描质量平台
一、前言我们都知道代码质量对于一个项目的重要性,如果开发人员迫于业务压力,一味追求项目开发进度,往往会容易形成大量的“烂代码”,那么测试人员势必会发现很多低级缺陷,甚至连冒烟测试都无法通过,这样势必会浪费很多时间,延误测试进度。假如我们在前期就借助一些代码扫描工具,然后针对这些扫描出的问题再进一步分析,这样轻易地可以发现一些真正代码问题;
其他的废话就不多说,今天我们就从gitlab服务器搭建、Sonarqube安装配置、gitlab与Sonarqube的整合集成三方面入手,从零搭建开始搭建一个自动化持续代码扫描质量平台
二、gitlab服务器搭建我们这里使用的是docker进行搭建,如果你还不知道怎么安装docker的可以问度娘或者参考:https://juejin.cn/post/6844903975947354125
1、安装镜像
dockerpullgitlab/gitlab-ce2、启动容器
sudodockerrun-d--hostnamexxxx.xxxx.xx--namegitlab--restartalways--publish30001:22--publish30000:80--publish30002:443--volume$HOME/gitlab/data:/var/opt/gitlab--volume$HOME/gitlab/logs:/var/log/gitlab--volume$HOME/gitlab/config:/etc/gitlabgitlab/gitlab-ce启动容器之后,我们执行dockerps(查看正在运行的容器列表)
发现我们的gitlab容器已启动,然后我们访问:http://localhost:30000/
发现仍然还是访问不了~~
那是因为gitlab还未启动,我们需要
3、进入容器
dockerexec-it636347c22ded/bin/bash4、初始化服务
gitlab-ctlreconfigure注意:如果网站访问不了,可以重启gitlab服务
gitlab-ctrlrestart5、访问gitlab网页
1、下载
注:版本:8.7.1
下载链接:https://www.sonarqube.org/downloads/(下载社区版就可以了)
2、解压进入/bin,效果如下
3、启动
根据自己的操作系统,进入相应的目录,我这边选择的是macosx-universal-64,然后执行:./sonar.shconsole,效果如下:
可看到SonarQube已启动成功
4、访问SonarQube网址,http://localhost:9000/
我前面花了挺大篇幅来介绍gitlab与SonarQube的安装搭建,为的就是替最后的集成做准备;当然这需要你对Gitlab-CI有一定的了解,如果你在这一块领域还是个小白,可以网上找相关资料熟悉,或者看我另一篇文章:react项目Jest+Enzyme单元测试集成至gitlab的后半部分;
废话不多说,我们现在就来介绍如何实现代码提交、合并前进行自动化代码扫描并实现PullRequest修饰,具体效果如图:
如果代码扫描没通过,不仅无法进行合并并会通过微信/云之家进行消息通知!
一、安装SonarQube社区版分支插件sonarqube社区版不支持branch功能,每个project都只能展示一个分支。要支持多个分支共同展示功能需要安装sonarqube-community-branch-plugin插件,当然我选择这个插件还有另外一个重要原因,它可以支持pullRequest修饰的功能
插件版本:v1.7.0(根据不同SonarQube版本选择对应插件版本)
1、下载对应版本jar包
2、复制jar包到SonarQube下的extensions/plugins/和lib/common/目录下
3、重启SonarQube
4、用管理员账号登陆SonarQube配置,并配置ServerbaseURL
5、关于pullRequest修饰后面介绍
二、GitLab的配置1、重新注册一个用户名为SonarQube的用户
2、登陆超级管理员账号进行Approve,SonarQube账号生效
3、登陆SonarQube账号
4、创建GitLabOAuthapp(将GitLab用作OAuth提供程序的应用程序)
点击保存,会自动跳转到另一个页面,里面有ApplicationID和Secret信息,千万记得记得这个要保存起来,SonarQube那里会用到这两个信息;
5、生成personalaccesstoken(用于修饰合并请求,留评论的账号的AccessToken)
点击创建,之后token生成,记得把这个token记下,SonarQube里面gitlab的集成需要使用到
到这里,gitlab的配置算是over了~
三、SonarQube的配置❷ 群晖使用Docker安装并配置GitLab服务器
通过群晖内置的Docker安装并配置GitLab服务器,可以获取较新版本的GitLab,实现更高效的资源利用。然而,由于GitLab的系统要求较高,官方推荐的最低配置为4GB内存,因此在低于此配置的机器上安装可能会影响性能。本文主要指导如何在群晖环境下使用Docker安装GitLab服务器。
首先,在群晖系统中安装Docker。若已安装,只需确保Docker套件已更新至最新版本。在其他Linux发行版(如Ubuntu)上安装Docker时,参照官方文档进行操作。
使用Docker安装GitLab的具体步骤如下:
搜索并下载官方gitlab-ce镜像。在Docker界面中双击镜像进行下载。
创建容器并配置。在高级选项中调整卷、端口等设置。创建三个卷文件夹:存储数据的路径为/docker/gitlab/data,日志文件存放路径为/docker/gitlab/logs,配置文件路径为/docker/gitlab/config。同时,配置端口映射,如30022、30443和30000等。
确保群晖防火墙开放上述端口。同样,对于Ubuntu等其他Linux系统,也需要开放相应的端口。
安装完成后,通过端口访问GitLab,如http://:30000。首次登录需设置root用户密码,后续通过root账户登录并配置参数。
如果设备未公开IP,可能需要借助花生壳内网穿透服务来访问GitLab服务器。
为域名申请SSL证书。通过Let's Encrypt或阿里云等网站获取免费或收费的证书。将证书文件(包括cert或pem文件及key文件)上传至/etc/gitlab/ssl目录。
编辑gitlab.rb配置文件,修改SSL相关参数。在容器终端或通过ssh登录后编辑文件。
在gitlab.rb中配置邮箱发送功能,以163邮箱为例进行设置。
修改gitlab.rb中的SSH端口配置,将默认端口22更改为30022,确保SSH访问正常。
实现手动备份,导出Docker映像和容器。
创建备份脚本,用于自动执行备份操作。将脚本保存在群晖共享文件夹的根目录下。
在群晖系统中创建计划任务,通过运行自定义脚本来定期执行备份操作。
备份文件存储于指定的本地和容器卷路径。
根据需要,执行备份文件的还原操作。