• SonarQube 集成 GitLabCI


    本文是用于分析SonarQube代码的质量,每次在GitLab上提交代码时都使用GitLab-CI运行器进行检查。

    1.SonarQube with GitLab

    安装插件GitLab-plugin for SonarQube,转到Adminstration-> MarketPlace,搜索“GitLab”,然后单击安装,安装完成后,重新启动SonarQube


    为SonarQube设置GitLab插件:从GitLab获取用户令牌。


    转到SonarQube:管理 - >配置 - > GitLab:

    GitLab url: add your GitLab url

    GitLab User Token: 上一步获取的token

    2.Sonar Scanner


    您需要一个sonar scanner来扫描您的代码。根据官方文档,SonarQube Scanner被推荐为使用SonarQube分析项目的默认启动器。下载sonar scanner for msbuilder,.net 跟 .net core 都有对应的版本,

    这里我们下载.net 的版本(为何不使用.net core,.net core 版本执行shell命令涉及到了一些权限问题,暂时没有找到解决方案),解压缩:

    编辑SonarQube.Analysis.xml,修改sonar平台地址,以及用户名密码:

    GitLab-CI Runner

    我们需要GitLab-CI Runner来帮助我们运行作业并将结果发送回GitLab。 
    a.在系统中的某个位置创建一个文件夹,例如:C: GitLab-Runner。 
    b.下载x86或amd64的二进制文件并将其放入创建的文件夹中。将二进制文件重命名为gitlab-runner.exe,如下是gitlab runner文件夹

     

     c.运行管理员命令提示符。

     d.通过cmd:“gitlab-runner.exe register”注册Runner,输入它一步一步询问的信息。 

        d1. GitLab Url  

        d2. 令牌:在CI / CD设置页面中获得的。

     

     d3.描述:跑步者的描述 
     d4.标签:与Runner相关联的标签,可以稍后在GitLab的UI中进行更改。 
     d5.Runner执行者:eg.shell,docker等。 
    e.将Runner作为服务安装并启动它。 (使用内置系统或用户帐户运行服务)
     e1. cmd:gitlab-runner install 
     e2. cmd:gitlab-runner start

     

    f. 编写.gitlab-ci.yml并将其放在GitLab上的根目录下,当存储库发生任何更改时,它将运行这个脚本。

    stages:
        - publish
     
    Sonar_Publish:
        stage: publish
        script:
            - chcp 65001
            - dotNetSonarDemosonar_runner.bat
        only:
            - master

    编写bat脚本文件:

    @ECHO off
     
    CALL :build
    GOTO:eof
     
    :build
    FOR  /r  %%L IN (*.sln) DO (
    echo Doing  %%L ...........
    call "d:sonarmsMSBuild.SonarQube.Runner.exe" begin /k:"%%~nL" /v:"1.0" /d:sonar.analysis.mode=publish /d:sonar.gitlab.commit_sha=%CI_COMMIT_SHA% /d:sonar.gitlab.project_id=%CI_PROJECT_ID% /d:sonar.gitlab.ref_name=%CI_COMMIT_REF_NAME% /d:sonar.cs.opencover.reportsPaths="%%~pL%%~nLTestprojectCoverageReport.xml"
    call "E:Microsoft Visual Studio2017ProfessionalMSBuild15.0BinMSBuild.exe" %%L
    call "d:sonarmsMSBuild.SonarQube.Runner.exe" end
    )

    修改本地代码并推送,查看gitlab自动构建信息如下:

    job执行成功,sonar平台上也能查看到扫描记录:

    分割线------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    sonar 集成gitlab 扫描.net core 出现的问题:

    running the scanner for msbuild under local system or network service account is not supported

    好多老外也遇到了这个问题:https://github.com/SonarSource/sonar-scanner-msbuild/issues/522,不知道有没有什么好的方式,谁能帮我?

     
  • 相关阅读:
    vss
    JavaScript中的5种事件使用方式解说
    loadrunner
    NET体系结构图
    eclipse Java Build Path
    httpModules 与 httpHandlers
    redhat linux5 安装配置 JDK1.6+Tomcat6+Apache2.2.x+jk_mod1.2
    如何在线使用MSDN
    petshop
    ADO.NET Entity Framework 使用数据定义语言(实体框架)
  • 原文地址:https://www.cnblogs.com/akaxb/p/9504394.html
Copyright © 2020-2023  润新知