zoukankan      html  css  js  c++  java
  • gitlab-ci集成SonarQube代码质量检查

    SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误。

    docker安装

    1、拉取 postgres:docker pull postgres:10

    2、拉取sonarqube:docker pull sonarqube:7.9.1-community

    3、启动postgres:docker run -d -p 5431:5432 -e POSTGRES_PASSWORD=1 --name postgres postgres:10

    4、进入postgres创建数据库sonar

    5、启动sonarqube:docker run -d -p 1022:22 -p 9000:9000 -e "SONARQUBE_JDBC_URL=jdbc:postgresql://192.168.6.16:5431/sonar" -e "SONARQUBE_JDBC_USERNAME=postgres" -e "SONARQUBE_JDBC_PASSWORD=1" --name sonarqube sonarqube:7.9.1-community

    sonarqube使用

    1、sonarqube安装简体中文包:

     依次点击页面:Administration – Marketplcae – All – Chinese Pack(Install)

     当安装状态变为Install Pending时,点击最上边的Rastart按钮

     2、创建一个普通用户用于做代码质量检测

     3、生成令牌:testing_sonarqube

    gitlac-ci集成SonarQube

    Sonar GitLab Plugin 安装

    在 SonarQube 上安装该插件安装方式很简单。

    方式一:可以直接下载 https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases该插件,放到 <sonarqube_install_dir>/extensions/plugins 目录,重启 SonarQube 即可。

    方式二:admin 登录 SonarQube,点击 配置 —> 系统 —> 更新中心 —> Available —> Search,输入 GitLab,在列表中点击 install 安装,安装完毕后重启 SonarQube 即可。

    注意:该插件 sonar-gitlab-plugin 兼容 SonarQube 的版本信息如下

    SonarQubesonar-gitlab-pluginLast version
    <version> < 5.4 <version> <= 1.6.6 1.66
    5.4 <= <version> < 5.6 <version> = 1.7.0 1.7.0
    <version> >= 5.6 <version> > 1.7.0 2.1.0

    配置 GitLab 通用账户

    这里为了方便统一管理,我们在 GitLab 上注册一个通用账号:sonarQube,作为对接 SonarQube 的统一账户,注册过程略,获取Token方式入下:
    sonarQube 登录,点击 setting —> 访问令牌 ,获取的 User Token 为下边插件配置使用。同时还需要将 SonarQube 加到项目成员或项目所属项目组成员里面去,这样才能有权限 comment 和添加注释行。

    配置 sonar-gitlab-plugin 插件

    admin 登录 SonarQube,点击 配置 —> 通用配置 —> GitLab —> Reporting —> 设置 GitLab User Token 以及 GitLab url。GitLab User Token 为 GitLab 上用户的 Token(这里使用上边统一账户 sonarQube Token),其他配置默认即可。

    这里写图片描述

    SonarQube生成Token

    在sonarqube中生成token供yml中使用

    gitlab-ci使用(以java maven项目为例子)

    1)配置pom.xml(以下为所需要加载的插件:spring-boot-maven-plugin、maven-compiler-plugin、sonar-maven-plugin、jacoco-maven-plugin)

    <build>
      <pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
          </plugin>

          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
             <version>3.6.1.1688</version>
          </plugin>

          <plugin>
             <groupId>org.jacoco</groupId>
             <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.5</version>
          </plugin>

        </plugins>
      </pluginManagement>
    </build>

    2)gitlab-ci.yml

    variables:
      MAVEN_CLS_OPTS: "-s /usr/local/maven/conf/settings.xml --batch-mode"
      MAVEN_OPTS: "-Daven.repo.local=/home/gitlab-runner/.m2/repository" 
      SONAR_TOKEN: "24e536eec4084dc9859137c1734ebb6b1612de95"    # sonarqube生成的token
      SONAR_HOST_URL: "http://192.168.6.16:9000/"   # sonarqube的地址
      GIT_DEPTH: 1

    stages:
      - test

    job1:
      stage: test
      script:
      - cd $CI_PROJECT_DIR/demo
      - mvn --batch-mode verify sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKEN

  • 相关阅读:
    [NM]打开NetworkManager和wpa_supplicant的DEBUG接口
    TI am335x am437x PRU
    Ansible and FileBeta
    [gpio]devm_gpiod_get_optional用法
    TCP连接
    STM32云平台连接培训20180814
    select理解
    TypeScript躬行记(1)——数据类型
    React躬行记(15)——React Hooks
    React躬行记(14)——测试框架
  • 原文地址:https://www.cnblogs.com/wu-wu/p/13489207.html
Copyright © 2011-2022 走看看