2015-11-03 19 views
10

Sembra che lo Build Breaker Plugin non sia più compatibile con SonarQube 5.2. Esiste un'alternativa a un errore di compilazione (VSO) se un cancello Sonar non è soddisfatto o sono previsti aggiornamenti del Build Breaker Plugin a 5.2?Build Breaker Plugin con SonarQube 5.2

+1

Questo punto è stato discusso nel gruppo google di SonarQube: https://groups.google.com/d/msg/sonarqube/gR07SqqpAyQ/ulN2wdO4EQAJ –

risposta

11

Non c'è (per ora) alcun plug-in che interrompa la compilazione quando Quality Gate non è passato a SonarQube 5.2.

Ma per SonarQube 5.3+ è possibile utilizzare nuovamente il plug-in Build Breaker.


dalla mailing list:

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

Fabrice Bellingrad: Il Build Breaker Plugin non sarà disponibile per SQ 5.2+. L'idea è di sviluppare una funzionalità di base per rispondere ai casi d'uso precedentemente coperti da questo plugin. Questo è ciò che noi chiamiamo la funzione "what if" => https://jira.sonarsource.com/browse/SONAR-6763

Questo problema SONAR-6763 è prevista per SonarQube 6.X.

+0

Si noti che la data di rilascio potrebbe spostarsi. :) –

+4

Questo è abbastanza deludente. Facciamo affidamento su questo come parte della nostra continua integrazione. C'è qualche giustificazione per rimuovere una funzionalità utile? – jbarrus

+0

Sono con te. Non aggiorneremo a 5.2 a causa di ciò. Questa è una caratteristica indispensabile per la realizzazione della tua piattaforma di integrazione continua! –

2

In SonarQube 5.2 abbiamo trovato un modo alternativo nell'utilizzo del servizio Web /api/events.


richiesta Esempio: esempio

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

Risposta:

<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> 

Rilevazione dello stato RED del progetto:

Per verificare lo stato ROSSO è necessario trovare event con il valore più altonell'elenco events dalla risposta e quindi verificare che name di questo evento sia iniziato a partire da Red e se lo troverete sarà necessario eseguire un fail build.

Tale verifica può essere fatta solo sul server di CI utilizzando ulteriore passo riga di comando dopo passo SQ oppure può essere fatto dal sistema di automazione di costruzione, come Maven o Gradle.


Noi non ha attuato tale soluzione ancora nel nostro progetto, proprio a causa della mancanza di tempo libero, ma lo faremo nel prossimo futuro.

La soluzione proposta deve essere utilizzata solo come soluzione alternativa finché non verrà risolto il problema SONAR-6763.

+1

I passaggi aggiuntivi della riga di comando sono sempre eseguiti * prima * Sonar, quindi non può essere usato. – mirabilos

2

Con SonarQube 5.3 è stato introdotto un nuovo Quality Gates Web Service che può essere chiamato e utilizzato per interrompere la compilazione.

per rompere la build CI per una porta di qualità fallito, utilizzare WS chiamate API in un ciclo di aspettare fino trattamento è finito, e quindi controllare il servizio web di qualità Gate:

  • chiamata ceTaskUrl del analisi e esaminare il valore "status":
    • ATTESA o in_progress - prova di nuovo tardi
    • riuscito o annullato - rompere la build?
    • SUCCESSO - andare avanti
  • chiamata di servizio Web qualità gate per lo stato

Ho anche aggiunto un issue to enhance the VSTS Tasks with an option to automatically call this service.

Aggiornamento: A recent PR aggiunto questa funzione per il VSTS Task (non ancora rilasciato)

+2

Dici solo "potrebbe essere usato" ma per favore descrivi anche il * come *. – mirabilos

+0

Vedere il link che ho citato [Breaking the CI Build] (http://docs.sonarqube.org/display/SONAR/Breaking+the+CI+Build) o anche [Implementazione del task VSTS] (https: // github. com/Microsoft/vso-agent-tasks/tree/master/Tasks/SonarQubePostTest) per un esempio. Non credo che Sonar abbia pubblicato ulteriori documenti su questo. Altrimenti dovresti chiedere loro direttamente se hai bisogno di ulteriore aiuto. –