Sonarqube与Gitlab集成

1、Docker安装Sonarqube

docker-compose.yml

version: "3"

services:
  sonarqube:
    image: sonarqube:8.9.7-community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data:

2、 调整linux系统配置

/etc/sysctl.conf

fs.file-max = 6553560 

kernel.sem =5010 641280 5010 128
net.core.somaxconn=65535
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
vm.overcommit_memory=1
vm.max_map_count=262144

 配置生效:sysctl -p

3、访问http://x.x.x.x:9000/

默认登录:admin/admin

4、获取Gitlab Personal Access Token(Edit profile) 

Sonarqube与Gitlab集成_第1张图片

5、Sonarqube administration 创建Gitlab集成配置(第4步中创建的Access Token)

Sonarqube与Gitlab集成_第2张图片

6、Sonarqube导入Gitlab项目

 

7、选择Gitlab中的项目

Sonarqube与Gitlab集成_第3张图片

 Sonarqube与Gitlab集成_第4张图片

 8、生成Sonarqube Gitlab CI中的环境变量

Sonarqube与Gitlab集成_第5张图片

 

 Sonarqube与Gitlab集成_第6张图片

 9、根据第8步中的Sonarqube信息,配置Gitlab项目中的变量。

Sonarqube与Gitlab集成_第7张图片

 

 10、根据Sonarqube信息,配置Gitlab项目.gitlab-ci.yml文件

Sonarqube与Gitlab集成_第8张图片

 

sonarqube-check:
  image: gradle:jre11-slim
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"  # Defines the location of the analysis task cache
    GIT_DEPTH: "0"  # Tells git to fetch all the branches of the project, required by the analysis task
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script: gradle sonarqube
  allow_failure: true
  only:
    - master # or the name of your main branch

11、修改项目build.gradle,增加sonarqube插件。

plugins {
    id "org.sonarqube" version "3.4.0.2513"
}

sonarqube {
    properties {
        property 'sonar.projectName', "${project.name}"
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.sources", "src"
    }
}

12、Git提交修改,合并分支触发CI/CD。

你可能感兴趣的:(服务器,postgresql,数据库)