GitLab + SonarQube 搭建自动代码检测平台
基于 SonarQube 8.9 搭建,SonarQube 代码质量管理工具,本文侧重讲解 SonarQube 安装配置,GitLab、GitLab Runner 安装:参照 GitLab安装部分。
安装配置 SonarQube
SonarQube 8.9 只支持,PostgreSQL 数据库。
- 通过 Rancher 安装 PostgreSQL 9.6
- 通过 Rancher 安装 SonarQube 8.9
通过 Rancher 安装 PostgreSQL
通过 Rancher 安装 SonarQube
配置项目接入代码检测
Java项目配置(Maven)
.gitlab-ci.yml
stages:
- quality
variables:
sonar_url: "http://172.0.0.1:9000"
sonar_token: "**********************"
# 功能分支、发布分支检测
sonar_feature_job:
stage: quality
script:
- mvn --batch-mode verify sonar:sonar
-Dsonar.host.url=$sonar_url -Dsonar.login=$sonar_token
-Dsonar.projectKey=$CI_PROJECT_NAME
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.gitlab.project_id=$CI_PROJECT_ID
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
only:
- /^feat\/*/
- /^release\/*/
tags:
- mavenrunner01
# 对uat进行管控
sonar_uat_job:
stage: quality
script:
- mvn --batch-mode verify sonar:sonar
-Dsonar.host.url=$sonar_url -Dsonar.login=$sonar_token
-Dsonar.projectKey=$CI_PROJECT_NAME
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.gitlab.project_id=$CI_PROJECT_ID
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
only:
- uat
tags:
- mavenrunner02
# 对生产环境进行管控
sonar_master_job:
stage: quality
script:
- mvn clean install -Dmaven.test.skip=true
- mvn --batch-mode verify sonar:sonar
-Dsonar.host.url=$sonar_url -Dsonar.login=$sonar_token
-Dsonar.projectKey=$CI_PROJECT_NAME
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.gitlab.project_id=$CI_PROJECT_ID
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
only:
- master
- prod
tags:
- mavenrunner03
**