2015-11-03 19 views
10

看起來Build Breaker Plugin不再與SonarQube 5.2兼容。如果Sonar門沒有完成或者是否有計劃將Build Breaker插件更新到5.2,是否還有其他方法可以使VSO構建失敗?使用SonarQube 5.2構建斷路器插件

+1

這一點是在SonarQube的谷歌組上討論的:https://groups.google.com/d/msg/sonarqube/gR07SqqpAyQ/ulN2wdO4EQAJ –

回答

11

沒有(現在)這將打破建立在質量門我以前不傳遞SonarQube 5.2任何插件。

但SonarQube 5.3+可以再次使用Build Breaker插件。


從郵件列表:

Breaking the build in SonarQube 5.2(21月/ 10月/ 2015年)

Fabrice Bellingrad:本Build Breaker Plugin 將無法​​使用SQ 5.2+。這個想法是開發一個核心特性 來回答此插件以前的用例。這是 就是我們所說的「如果」功能=> https://jira.sonarsource.com/browse/SONAR-6763

這個問題SONAR-6763計劃於SonarQube 6.X

+0

請注意,該發佈日期可能會移動。 :) –

+4

這非常令人失望。我們依靠這個作爲我們持續集成的一部分。是否有理由刪除有用的功能? – jbarrus

+0

我和你在一起。因此,我們不會升級到5.2。在構建持續集成平臺時,這是一項必備功能! –

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> 

檢測項目的紅色狀態:

要驗證紅色狀態,您需要找到event,並在events列表中找到最高id值,然後驗證此事件的nameRed開始,如果您發現它,則需要構建失敗。

這樣的驗證可以在SQ步驟後使用額外的命令行步驟在CI服務器上完成,也可以從構建自動化系統(如MavenGradle)完成。


由於缺乏空閒時間,我們還沒有在我們的項目中實施這種解決方法,但我們將在不久的將來做到這一點。

提出的解決方案應僅作爲解決方法,直到問題SONAR-6763將完成。

+1

附加命令行步驟始終在* Sonar之前運行,因此無法使用。 – mirabilos

2

隨着SonarQube 5.3引入了一個新的Quality Gates Web Service,可以調用並用於打破構建。

打破CI建立一個失敗的質量門,使用WS API調用在循環中等待,直到處理完畢後,再檢查質量門Web服務:

  • 呼叫分析的ceTaskUrl和檢查「狀態」值:
    • PENDING或IN_PROGRESS - 再次檢查後
    • 失敗或取消 - 打破建立?
    • 的成功 - 前進
  • 通話質量門web服務狀態

我還添加了一個issue to enhance the VSTS Tasks with an option to automatically call this service

更新:一個recent PR添加了這個功能,將VSTS任務(尚未公佈)

+2

你只說「可以使用」,但請描述* how *。 – mirabilos

+0

請參閱我提到的[打破CI構建](http://docs.sonarqube.org/display/SONAR/Breaking+the+CI+Build)或[VSTS任務實現](https:// github。 com/Microsoft/vso-agent-tasks/tree/master/Tasks/SonarQubePostTest)爲例。我不認爲聲吶發佈了關於這方面的進一步文件。否則,你應該直接詢問他們是否需要進一步的幫助。 –