构建一个自动化的代码质量检测平台对于维护代码质量和团队协作至关重要。在本文中,我们将探究如何使用 GitLab CI/CD 与 SonarQube 相结合来实现这一目标。
GitLab 是一个开源的代码仓库管理系统,提供了强大的持续集成(CI)工具。SonarQube 是一个开源的代码质量管理平台,可以持续地检查代码质量并提供详尽的代码质量报告。
结合这两个工具,我们可以自动化地检测代码中的问题,从而保证代码的健康和质量。
为了开始我们的设置,需要确保以下组件已经准备就绪:
[root@gitlab ~]# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
1.2 安装gitlab
[root@gitlab ~]# yum -y install gitlab-ce
1.3 配置 配置gitlab,设置配置文件/etc/gitlab/gitlab.rb 中的 external_url 修改成本机ip+端口
1.4 重载配置生效,然后重启服务
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
1.5 访问ip+端口
用户名root,首次登陆需设定密码
2.2 安装和启动
我本机是linux,进入到bin/linux-x86-64/ 执行sonar.sh,注意:sonar服务依赖于elasticsearch,不能使用root用户启动
默认的访问地址是:ip+端口9000,默认用户是admin+admin
不同环境下的安装:
# Linux x86-64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Linux x86
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# Linux arm
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
下载对应平台的二进制运行文件,并保存命名到/usr/local/bin/gitlab-runner 权限设置:
chmod +x /usr/local/bin/gitlab-runner
安装和启动
gitlab-runner install --working-directory=/home/gitlab-runner
gitlab-runner start
设置runner环境,需要在gitlab项目中进行注册,进入项目后,在设置、cicd里面,点击Runner
将整个过程分为以下几个步骤:
.gitlab-ci.yml
文件首先,需要在 SonarQube 中为你的项目创建一个新的项目。创建后,SonarQube 会提供项目的 Key 和 Token,这些信息将在后续步骤中用到。
在 GitLab 项目的设置中,找到 CI / CD 配置,并添加环境变量:
SONARQUBE_URL
:设置为你的 SonarQube 服务器地址。SONARQUBE_TOKEN
:使用刚才在 SonarQube 中生成的 Token。确保您的 GitLab Runner 能够执行 Docker 命令,并且已经注册到你的 GitLab 中。
.gitlab-ci.yml
文件创建或更新你项目中的 .gitlab-ci.yml
文件,添加以下内容:
stages:
- test
- quality
sonarqube-check:
stage: quality
image:
name: sonarsource/sonar-scanner-cli:latest
entrypoint: [""]
variables:
GIT_DEPTH: "0"
script:
- sonar-scanner -Dsonar.projectKey=your_project_key -Dsonar.sources=./src -Dsonar.host.url=$SONARQUBE_URL -Dsonar.login=$SONARQUBE_TOKEN
only:
- master
- merge_requests
请确保替换 your_project_key
为你的 SonarQube 项目密钥,./src
为你的源代码目录。
提交 .gitlab-ci.yml
文件到你的 GitLab 项目,这将触发 CI/CD 流程。流程结束后,你可以在 SonarQube 的仪表板上看到一个全面的代码质量报告。
通过使用 GitLab 结合 SonarQube,我们可以自动化代码质量检测,这对于维持高质量的代码库和提高开发效率极为有用。每次提交或合并请求都会触发 SonarQube 分析,确保新代码不会降低现有代码库的质量。
如果您喜欢我的文章,请点击下面按钮随意打赏,您的支持是我最大的动力。
最新评论