使用SonarQube 5.2构建断路器插件

使用SonarQube 5.2构建断路器插件,sonarqube,azure-devops,tfsbuild,azure-pipelines,Sonarqube,Azure Devops,Tfsbuild,Azure Pipelines,似乎不再与SonarQube 5.2兼容。如果一个声纳门没有实现,是否有任何替代方案使(VSO)构建失败,或者是否有计划将构建破坏插件更新到5.2?目前没有任何插件会在质量门没有通过5.2时破坏构建 但对于SonarQube 5.3+,您可以再次使用插件 从邮件列表: (2015年10月21日) 字体 SQ 5.2+将不可用。这个想法是开发一个核心特性 回答此插件之前涵盖的用例。这是 我们所称的“假设”功能=> 本期计划发布。在SonarQube 5.2中,我们找到了使用Web服务的替代方法

似乎不再与SonarQube 5.2兼容。如果一个声纳门没有实现,是否有任何替代方案使(VSO)构建失败,或者是否有计划将构建破坏插件更新到5.2?

目前没有任何插件会在质量门没有通过5.2时破坏构建

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


从邮件列表:

(2015年10月21日)

字体 SQ 5.2+将不可用。这个想法是开发一个核心特性 回答此插件之前涵盖的用例。这是 我们所称的“假设”功能=>


本期计划发布。

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


请求示例:

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>
https:///api/events?categories=Alert&resource=
响应示例:

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>

50411
红色(是绿色的)
项目密钥
警觉的
2015-09-29T22:38:44+0200
自上次分析(2015年9月23日)以来新的关键问题>0,自上次分析(2015年9月23日)以来新的重大问题>0,自上次分析(2015年9月23日)以来新问题>0
....
检测项目的红色状态:

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>
要验证红色状态,您需要在响应中的
事件
列表中找到具有最高
id
值的
事件
,然后验证此事件的
名称
是否从
红色
开始,如果您找到它,则需要生成失败

这种验证可以在CI服务器上使用额外的命令行步骤在SQ步骤之后完成,也可以从构建自动化系统(如或)中完成


我们还没有在我们的项目中实施这种变通方法,只是因为缺少空闲时间,但我们将在不久的将来这样做

在问题解决之前,建议的解决方案只能用作解决方案。

SonarQube 5.3引入了一个新的解决方案,可以调用该解决方案并用于中断构建

要中断失败质量门的CI生成,请在循环中使用WS-API调用等待处理完成,然后检查质量门web服务:

  • 调用分析的ceTaskUrl并检查“状态”值:
    • 挂起或正在进行-稍后再次检查
    • 失败或取消-是否中断生成
    • 成功-向前迈进
  • 调用Quality Gate web服务以获取状态
我还添加了一个


更新:A将此功能添加到VSTS任务中(尚未发布)

您现在可以使用SonarQube版本5.3+。

这一点已在SonarQube的google组中讨论过:请注意,发布日期可能会移动。:)这相当令人失望。我们将此作为持续整合的一部分。删除一个有用的功能有什么理由吗?我同意。因此,我们不会升级到5.2。这是构建持续集成平台时必须具备的功能!关于SonarQube邮件列表有一个很大的讨论。结论:这将是SonarQuibe 5.4中的一个核心功能。SonarQube团队将问题的修复版本从5.4更改为6.X。附加的命令行步骤总是在Sonar之前运行,因此不能使用。您只说“可以使用”,但也请描述如何使用。请参阅我提到的链接,或者也请参阅示例。我不认为sonar发布了更多关于这方面的文档。否则,如果你需要进一步的帮助,你应该直接问他们。