2015-11-03 5 views
10

Es scheint, als ob die Build Breaker Plugin nicht mehr mit SonarQube 5.2 kompatibel ist. Gibt es eine Alternative, um einen (VSO) Build fehlschlagen zu lassen, wenn ein Sonar-Gate nicht erfüllt wird oder das Build Breaker Plugin auf 5.2 aktualisiert werden soll?Erstellen von Breaker-Plugins mit SonarQube 5.2

+1

Dieser Punkt wurde in der Google Group von SonarQube behandelt: https://groups.google.com/d/msg/sonarqube/gR07SqqAyQ/ulN2wdO4EQAJ –

Antwort

11

Es gibt (vorerst) kein Plugin, das den Build bricht, wenn Quality Gate nicht weitergegeben wurde SonarQube 5.2.

Aber für SonarQube 5.3+ können Sie wieder Build Breaker Plugin verwenden.


Von Mailingliste:

Breaking the build in SonarQube 5.2 (21/Okt/2015)

Fabrice Bellingrad: Die Build Breaker Plugin nicht für SQ 5.2+ verfügbar sein. Die Idee ist, ein Kernmerkmal zu entwickeln, um die Anwendungsfälle zu beantworten, die vorher von diesem Plugin abgedeckt wurden. Dies ist , was wir das "was wäre wenn" feature => https://jira.sonarsource.com/browse/SONAR-6763

Dieses Problem SONAR-6763 ist geplant für SonarQube 6.X nennen.

+0

Beachten Sie, dass sich dieses Veröffentlichungsdatum verschieben kann. :) –

+4

Das ist ziemlich enttäuschend. Darauf verlassen wir uns im Rahmen unserer kontinuierlichen Integration. Gibt es eine Rechtfertigung dafür, ein nützliches Feature zu entfernen? – jbarrus

+0

Ich bin bei dir. Wir werden deshalb nicht auf 5.2 upgraden. Dies ist ein Muss beim Aufbau Ihrer kontinuierlichen Integrationsplattform! –

2

In SonarQube 5.2 haben wir einen alternativen Weg zur Verwendung des Web Service /api/events gefunden.


Anfrage Beispiel:

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

Antwort Beispiel:

<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 Status des Projekts Erkennung:

Um den RED-Status zu überprüfen, müssen Sie event mit dem höchsten id Wert in events Liste von Antwort finden und dann überprüfen, dass name dieses Ereignisses von Red startet und wenn Sie es finden, müssen Sie fehlschlagen Build.

Eine solche Verifizierung kann nur auf dem CI-Server mit einem zusätzlichen Befehlszeilenschritt nach dem SQ-Schritt durchgeführt werden, oder es kann vom Build-Automatisierungssystem wie Maven oder Gradle durchgeführt werden.


Wir haben nicht versucht solche Umgehung noch in unserem Projekt, nur wegen mangelfreie Zeit, aber wir werden dies in naher Zukunft tun.

Die vorgeschlagene Lösung sollte nur als Workaround verwendet werden, bis die Ausgabe SONAR-6763 durchgeführt wird.

+1

Zusätzliche Befehlszeilenschritte werden immer * vor * Sonar ausgeführt, daher kann dies nicht verwendet werden. – mirabilos

2

Mit SonarQube 5.3 wurde eine neue Quality Gates Web Service eingeführt, die aufgerufen und verwendet werden könnte, um den Build zu brechen.

Um die CI Build für einen ausgefallenen Quality Gate zu brechen, WS-API-Aufrufe in einer Schleife warten, bis die Verarbeitung beendet ist, und dann Quality Gate Web-Service-Check:

  • Aufruf der ceTaskUrl Analyse und untersuchen den "Status" Wert:
    • PENDING oder IN_PROGRESS - überprüfen Sie es später erneut
    • fehlgeschlagenen oder abgebrochenen - den Build brechen?
    • SUCCESS - vorwärts bewegen
  • Anruf Quality Gate Web-Service für Status

Außerdem habe ich eine issue to enhance the VSTS Tasks with an option to automatically call this service.

Update: A recent PR hinzugefügt, um diese Funktion zu der VSTS Aufgabe (noch nicht erschienen)

+2

Sie sagen nur "könnte verwendet werden" aber bitte beschreiben Sie auch das * wie *. – mirabilos

+0

Siehe den Link, den ich erwähnt habe [Breaking the CI Build] (http://docs.sonarqube.org/display/SONAR/Breaking+the+CI+Build) oder auch die [VSTS Task implementation] (https: // github. com/Microsoft/vso-Agent-Aufgaben/Baum/Master/Aufgaben/SonarQubePostTest) für ein Beispiel. Ich glaube nicht, dass Sonar weitere Dokumentationen dazu veröffentlicht hat. Andernfalls sollten Sie sie direkt fragen, wenn Sie weitere Hilfe benötigen. –

Verwandte Themen