【问题标题】:SonarQube with shallow clone warning even with shallow disabled on Jenkins build即使在 Jenkins 构建上禁用了浅层,SonarQube 也会发出浅层克隆警告
【发布时间】:2020-03-18 20:55:13
【问题描述】:

我有一个使用 MSBuild 构建解决方案的 Jenkins 服务器。未启用浅克隆(在高级克隆行为上),所以我认为它正在获取所有最后的提交。我正在使用 SonarQube 进行分析。我设置在构建之前运行开始分析,在构建完成后运行结束分析。 SonarQube 分析成功完成,但我收到警告:

分析期间检测到浅克隆。有些文件会错过 SCM 信息。 这将影响问题的自动分配等功能。请 配置您的构建以禁用浅克隆。

有人知道我对 SonarQube 缺少什么可以正常工作吗?

【问题讨论】:

  • documentation 页面上没有可用信息?
  • 是的!我以前读过,但现在我检查了有关完整克隆的信息,所以我搜索了一下,现在发布了答案:)

标签: git jenkins sonarqube shallow-clone


【解决方案1】:

我的一个与 sonarcloud 集成的 github 存储库在 sonarcloud 中收到了相同的警告。

因此,如果有人在 github 操作工作流中寻找禁用浅层克隆的选项,那么只需编辑 yml 文件并使用 fetch-depth: 0 选项和 actions/checkout@v2 步骤来禁用浅层克隆。

下面会提到完整的例子

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0

欲了解更多详细信息,请访问 - https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches

【讨论】:

    【解决方案2】:

    如文档中所述:https://docs.travis-ci.com/user/customizing-the-build#sts=Git%20Clone%20Depth%20#

    只需在.travis.yml 中禁用 git fetch depth 限制,如下所示:

    git:
      depth: false
    

    否则你会被 git 克隆两次。

    【讨论】:

      【解决方案3】:

      我已经解决了!当我在 Jenkins 上禁用 Shallow Clone 时,它​​仍然缺少过去的提交,所以我不得不在存储库文件夹中的 GIT bash 上运行一些命令:

      git fetch --depth=1000000
      

      (除非您有超过 100 万次提交)

      然后确认我已经移除了浅层:

      git fetch --unshallow
      

      等待下一次构建和分析后,现在警告消失了,我可以看到作者了!

      【讨论】:

      • 这意味着您在使用此命令后不再使用浅层克隆。对吗?
      猜你喜欢
      • 1970-01-01
      • 2021-08-31
      • 2019-08-11
      • 2019-03-02
      • 2021-05-31
      • 2018-02-13
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      相关资源
      最近更新 更多