【问题标题】:SonarQube no new lines on merge request in Android gitlab projectSonarQube 在 Android gitlab 项目中的合并请求上没有新行
【发布时间】:2021-11-08 00:53:04
【问题描述】:

我的目标是将完整的 JaCoCo 报告发送到 SonarQube 并通过 gitlab 进行分析。我的完整命令如下:

gradlew \
-Dsonar.host.url=$URL \
-Dsonar.pullrequest.key=$NUMBER \
-Dsonar.pullrequest.branch=branch_name \
-Dsonar.pullrequest.base=main \
-Dsonar.qualitygate.wait=true \
sonarqube

当我使用本地命令行时,一切正常。 Sonar 在拉取请求中正确显示具有代码覆盖率的新行。奇怪的是,当我使用 gitlab-ci 的 same 命令时,它没有显示任何新行。

如何修复我的管道?

【问题讨论】:

    标签: android gitlab sonarqube gitlab-ci


    【解决方案1】:

    我使用--debug 模式运行我的所有进程,如下所示:

    gradlew \
    -Dsonar.host.url=$URL \
    -Dsonar.pullrequest.key=$NUMBER \
    -Dsonar.pullrequest.branch=branch_name \
    -Dsonar.pullrequest.base=main \
    -Dsonar.qualitygate.wait=true \
    sonarqube --debug > output.txt
    

    在短模式下获取文件作为工件很有帮助:

      artifacts:
        name: "sonar_logs"
        paths:
          - output.txt
    

    问题并没有我想象的那么复杂:

    2021-09-12T13:06:03.370+0200 [WARN] [org.sonarqube.gradle.SonarQubeTask] Could not find ref 'refs/heads/master' in refs/heads, refs/remotes, refs/remotes/upstream or refs/remotes/origin
    

    为了解决这个问题,我刚刚在“sonarqube”目标之前添加了一行:

    script:
    - git fetch origin master:master
    - gradlew \
    -Dsonar.host.url=$URL \
    -Dsonar.pullrequest.key=$NUMBER \
    -Dsonar.pullrequest.branch=branch_name \
    -Dsonar.pullrequest.base=main \
    -Dsonar.qualitygate.wait=true \
    sonarqube
    

    由于作业是封闭环境,它看不到任何其他分支,如 master。您必须手动获取 master 分支,然后 SonarQube 可以比较差异并显示新行。

    【讨论】:

      猜你喜欢
      • 2018-02-05
      • 2019-04-12
      • 2021-06-04
      • 2018-07-05
      • 2020-04-12
      • 2020-05-18
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多