11

It seems like the Build Breaker Plugin is no longer compatible with SonarQube 5.2. Is there any alternative to have a (VSO) build fail if a Sonar gate is not fulfilled or are there plans to update the Build Breaker Plugin to 5.2?

4

4 回答 4

12

当 Quality Gate 未通过SonarQube 5.2时,(目前)没有任何插件会破坏构建。

但是对于 SonarQube 5.3+,您可以再次使用Build Breaker插件。


从邮件列表:

打破 SonarQube 5.2 中的构建(2015 年 10 月 21 日)

Fabrice Bellingrad: SQ 5.2+ 将无法使用Build Breaker 插件。这个想法是开发一个核心功能来回答这个插件之前涵盖的用例。这就是我们所说的“假设”功能 => https://jira.sonarsource.com/browse/SONAR-6763

此问题SONAR-6763计划用于SonarQube 6.X。

于 2015-11-03T20:48:54.457 回答
3

您现在可以将SonarQube Build Breaker Plugin与 SonarQube 版本 5.3+ 一起使用。

于 2016-04-21T13:00:09.007 回答
2

在 SonarQube 5.2 中,我们找到了使用 Web 服务/api/events的替代方法。


请求示例:

https://<sq-host>/api/events?categories=Alert&resource=<project_key>

响应示例:

<events>
    <event>
        <id>50411</id>
        <name>Red (was Green)</name>
        <resourceKey>project_key</resourceKey>
        <category>Alert</category>
        <date>2015-09-29T22:38:44+0200</date>
        <description>New Critical issues > 0 since previous analysis (2015 Sep 23), New Major issues > 0 since previous analysis (2015 Sep 23), New issues > 0 since previous analysis (2015 Sep 23)</description>
    </event>
    ....
</events>

检测项目的RED状态:

要验证 RED 状态,您需要在响应列表中找到event最高idevents,然后验证name此事件的开始时间Red,如果找到它,则需要构建失败。

这种验证可以在 CI 服务器上使用 SQ 步骤之后的附加命令行步骤完成,也可以从MavenGradle等构建自动化系统完成。


我们还没有在我们的项目中实现这样的解决方法,只是因为没有空闲时间,但我们会在不久的将来这样做。

在解决问题SONAR-6763之前,建议的解决方案应仅用作解决方法。

于 2016-01-06T09:49:47.170 回答
2

在 SonarQube 5.3 中引入了一个新的Quality Gates Web 服务,它可以被调用并用于中断构建。

要为失败的 Quality Gate 中断 CI 构建,请在循环中使用 WS API 调用以等待处理完成,然后检查 Quality Gate Web 服务:

  • 调用分析的 ceTaskUrl 并检查“状态”值:
    • PENDING 或 IN_PROGRESS - 稍后再检查
    • 失败或取消 - 破坏构建?
    • 成功——前进
  • 调用 Quality Gate 网络服务获取状态

我还添加了一个问题来增强 VSTS 任务,并提供自动调用此服务的选项

更新:最近的PR将此功能添加到 VSTS 任务(尚未发布)

于 2016-01-13T08:34:45.470 回答