0

私はアプリケーションをビルドし、ソナーの解析を行い、次にmvn deployでou Nexusに渡す品質ゲートです。ジェンキンスプラグイン "Sonarqube scanner"で返される可能性のある値はどれですか?

初期セットアップはのみ(official docから取られた)は、成功した場合に公開することでした:

stage("Quality Gate"){ 
     timeout(time: 1, unit: 'HOURS') { 
      def qg = waitForQualityGate() 
      if (qg.status != 'OK') { 
       error "Pipeline aborted due to quality gate failure: ${qg.status}" 
      } 
     } 
    } 

と今、私たちはジェンキンスのビットに論理ゲートを変更したいと我々はケースに公開したいと思いますエラーはありません(ただし、警告は受け入れ可能です)。そのために

私はにジェンキンスsatgeを変更:

stage("Quality Gate"){ 
    timeout(time: 1, unit: 'HOURS') { 
     def qg = waitForQualityGate() 
     if (qg.status == 'Error') { 
      error "Pipeline aborted due to quality gate failure: ${qg.status}" 
     } 
    } 
} 

stage('Deploy to Nexus') { 
    sh "mvn deploy -DskipTests" 
} 

が、今、正常に動作しているようだしない:私のプロジェクトは常にネクサスにプッシュされていても品質ゲートがSonarQubeでエラーです。

私は条件を変更することで可能な回避策があります

qg.status != 'OK' || qg.status != 'Warning' 

誰もがエラー状態(そしておそらく他の値)のための正確な値が何であるかを知っていますか?

答えて

0

ドキュメントは不完全で、正しい戻り値を推測する以外の方法はありません。私はこのような正確なケースなしでテストすることをお勧め、このような問題を防止するため

:私のスクリプトが正常に動作しているような状態を使用する場合

if ('error'.equalsIgnoreCase(qg.status)) { 
    error "Pipeline aborted due to quality gate failure: ${qg.status}" 
} 

、返される値は、すべての資本のケースであるようだ:「ERROR」 。

0

それはSonarQube管理セットアップでウェブフックを経由して設定可能です:https://docs.sonarqube.org/display/SONAR/Webhooks

それで、あなたはOKか失敗のために、すべてのゲートウェイルール用に設定されているものは何でもメソッドが返します。

+0

これは境界線[リンクのみの回答](// meta.stackexchange.com/q/8231)です。ここに多くの情報を含めるように答えを広げ、参照用にのみリンクを使用してください。 – FrankerZ

+0

FrankerZは、あなたが設定したものを返すという自己説明文です。しかし、私は更新します、ありがとう – AlexGera

関連する問題