在 Azure Devops 上运行 SQ 不会扫描所有文件/子文件夹/项目,尤其是 c# 文件

Posted

技术标签:

【中文标题】在 Azure Devops 上运行 SQ 不会扫描所有文件/子文件夹/项目,尤其是 c# 文件【英文标题】:Running SQ on Azure Devops is not scanning all the files/subfolders/projects especially c# files 【发布时间】:2021-06-27 04:30:03 【问题描述】:

所以我遵循了这个指南 - SQ Integration in DevOps

但是即使在完成整个过程之后,SQ 也没有扫描 C# 文件,当我在我的 windows 10 机器上使用 cmd 手动执行它时,它能够扫描所有内容,我在这里遗漏了什么吗??,我没有遇到任何错误

我能够在控制台中收到警告,所以我假设分析有效,但是一旦 SonarQube 启动,就没有提及那里的文件

顺便说一句,我有一个 Xamarin 解决方案,并且我创建了一个 VS Build 管道来构建解决方案中的所有项目

【问题讨论】:

【参考方案1】:

查看doc:

C/C++/Objective-C 项目的分析需要Build Wrapper。它运行构建并收集正确分析 C/C++/Objective-C 项目所需的所有配置(例如宏定义、包含目录等)。 Build Wrapper 不会影响您的构建;它只是窃听它并将它学到的内容写入您指定的目录中的文件中。

由于您使用的是 Windows 10,我们可以通过插入以下脚本来添加 PowerShell script 任务,以使 Build Wrapper 在构建代理上可用

Invoke-WebRequest -Uri '<sonarqube_url>/static/cpp/build-wrapper-win-x86.zip' -OutFile 'build-wrapper.zip'
Expand-Archive -Path 'build-wrapper.zip' -DestinationPath '.'

【讨论】:

但是没有 C/C++ 或目标 C 文件,这是一个基于 .NET 的 Xamarin 解决方案

以上是关于在 Azure Devops 上运行 SQ 不会扫描所有文件/子文件夹/项目,尤其是 c# 文件的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps YAML并行运行未排队

在 Docker 中运行的自定义 Azure DevOps 构建代理上具有卷装载的测试容器

在 Azure DevOps 中对拉取请求运行选择性测试用例

在 Azure Devops 上运行构建时找不到资产文件 project.assets.json

Azure DevOps 构建管道自托管代理“设备上没有剩余空间”

用于运行进程的 Azure DevOps 管道