配置 SonarQube
DevOps Insights 该服务将于2026年8月31日停止运营并终止。Continuous Delivery 将于2027年2月12日在以下区域停止运营:au-syd、ca-mon、ca-tor、us-east。 Code Risk Analyzer 也将于该日期在所有地区停止提供服务。 如果某个区域未实际使用这些功能,该区域内的相关功能可能会提前停用,并停止接受新实例。 了解更多
SonarQube 提供了源代码总体运行状况和质量的概述,并重点阐述了在新代码中发现的问题。 代码分析器可检测到超过 20 种代码编写语言的棘手错误,例如空指针取消引用、逻辑错误和资源泄漏。
配置 SonarQube 以持续分析和测量源代码的质量:
-
在控制 IBM Cloud 台中,点击菜单图标(
)> 平台自动化 > 工具链。 在“工具链”页面上,单击某个工具链以打开其“概述”页面。
a. 单击添加工具。
b. 在“工具集成”部分中,单击 SonarQube。
-
输入此 SonarQube 工具集成实例的名称。
-
输入在您单击工具链中 SonarQube 卡时想要打开的 SonarQube 实例的 URL。
-
可选:输入用于连接到 SonarQube 服务器的用户名。
仅当使用密码连接到 SonarQube 服务器时,才需要指定用户名。 如果是使用认证令牌进行连接,请将此字段保留为空。
-
输入用于连接到 SonarQube 服务器的密码或认证令牌。
-
如果无法在公共因特网上找到服务器,请选择 高级。IBM Cloud 无法验证您提供的连接详细信息,并且将禁用需要对此服务器进行 API 访问的某些功能。 交付管道仅通过使用对该服务器具有网络访问权的专用工作程序来工作。
-
单击创建集成。
-
在工具链的“概述”页面上的 第三方工具 卡上,单击 SonarQube 以查看您连接到的 SonarQube 实例的仪表板。
将 Sonarqube 添加到持续集成管道
缺省 SonarQube 实例
如果您没有自己的 SonarQube 实例,那么管道将在管道运行期间创建 SonarQube 实例。 在 static-scan 阶段成功运行后,您可以访问此实例。
现有 SonarQube 实例
要将您自己的 SonarQube 实例添加到现有管道,请将工具集成 添加 到工具链,然后将 Sonarqube 工具集成参数添加到管道。
必需参数
要运行 SonarQube 扫描,管道需要以下连续集成参数:
| 名称 | 类型 | 描述 | 必需或可选 |
|---|---|---|---|
| 集群名称 | 文本 | Docker 构建集群的名称。 | 必需 |
| 开发区域 | 文本 | 托管集群的 IBM Cloud 区域。 | 必需 |
| 选择性加入声纳 | 文本 | 用于启用 sonarQube 扫描的选项。 | 必需 |
| sonarqube | 工具集成 | Sonarqube 工具集成。 | 可选 |
有关管道参数的更多信息,请参阅 管道参数。
若在管道中添加多个 SonarQube 工具集成,可通过修改 SonarQube 管道参数(该参数属于工具集成参数)的值来在它们之间切换。
更新质量门
如果使用管道创建的 SonarQube 实例,那么可以更新缺省质量检测点。
-
转到由任务 URL
static-scan中的管道日志创建的仪表板 SonarQube。
SonarQube 仪表盘 -
单击 质量关卡 > 创建。
-
使用下列其中一个选项来设置质量关卡:
- 单击 设置为缺省值 以将新创建的质量检测点设置为缺省值。
- 从仪表板中,选择项目,然后单击 项目设置 > 质量门 以将新创建的质量门用于项目。
-
指定要与项目关联的质量门。 此质量门将对新扫描进行评估,而质量门的结果将创建证据。
要了解有关SonarQube,的更多信息,请参阅 SonarQube Documentation。
使用您自己的配置文件
您可以在不使用自己的 SonarQube 实例的情况下修改缺省配置。 在要在其中创建配置文件的存储库中创建 sonar-project.properties 文件。 如果我们的脚本在存储库中检测到现有 configuration sonar-project.properties 文件,那么它将使用该文件而不是缺省文件。 有关配置文件中可能的分析参数的更多信息,请参阅此处的 分析参数。
请确保在配置文件中添加正确的 URL 登录凭据和主机。
使用另一静态扫描实现
您可以修改 .pipeline-config.yaml 文件以将自己的定制脚本添加到 static-scan 阶段,从而使用自己的静态扫描实现。
使用 API 配置 SonarQube
工具 SonarQube 集成支持以下配置参数,您可在 创建、读取和 更新工具集成时 通过工具链 HTTP API 和 SDK 使用这些参数。
必须在请求主体中使用 sonarqube 值指定 tool_type_id 属性。
| 参数 | 用途 | 类型 | Terraform 自变量 | 描述 |
|---|---|---|---|---|
| 盲连接 | 可选的,可更新的,Default: false |
布尔值 | 盲连接 | 设置为 true 以指示 Continuous Delivery 忽略此集成的配置验证。 此外,如果 SonarQube 服务器在公共因特网上不可寻址,请设置为 true。 |
| dashboard_url | 必需,可更新 | 字符串 | 服务器网址 | 此 SonarQubeURL 工具集成的服务器仪表板的。 在图形化用户界面中,当您点击工具集成 SonarQube 卡片时,浏览器将跳转至此仪表板。 |
| 名称 | 必需,可更新 | 字符串 | 名称 | 此工具集成的名称。 |
| 用户登录 | 可选,可更新 | 字符串 | 用户登录 | 用于向 SonarQube 服务器进行认证的用户标识。 |
| user_password | 可选,可更新 | 密码 | user_password | 用于向 SonarQube 服务器认证的密码或令牌。 您可以将工具链私钥引用用于此参数。 有关私钥引用的更多信息,请参阅 保护 Continuous Delivery中的敏感数据。 |