GitLab + SonarQube 搭建自动代码检测平台

GitLab + SonarQube 搭建自动代码检测平台

基于 SonarQube 8.9 搭建,SonarQube 代码质量管理工具,本文侧重讲解 SonarQube 安装配置,GitLab、GitLab Runner 安装:参照 GitLab安装部分

安装配置 SonarQube

SonarQube 8.9 只支持,PostgreSQL 数据库。

  1. 通过 Rancher 安装 PostgreSQL 9.6
  2. 通过 Rancher 安装 SonarQube 8.9

通过 Rancher 安装 PostgreSQL

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

**