簡體   English   中英

Jenkins插件“ Sonarqube掃描儀”中所有可能返回的值是什么

[英]What are all possible returned value in Jenkins plugin “Sonarqube scanner”

我有一個Jenkins管道作業,可構建我的應用程序,進行聲納分析,然后通過mvn deploy在ou Nexus中部署,通過了質量門。

初始設置僅在成功的情況下發布(摘自官方文檔 ):

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

現在我們想在Jenkins中更改一些邏輯門,並且我們希望在沒有錯誤的情況下進行發布(但可以接受警告)。

為此,我將Jenkins座標更改為:

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中的Quality(質量)門出現錯誤,我的項目也總是被推送到Nexus。

我可以通過更改條件來解決此問題:

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

任何人都知道錯誤狀態的確切值是多少(可能還有其他值)?

該文檔似乎不完整,除了猜測正確的返回值外,沒有其他方法。

為了防止出現此類問題,我建議在沒有這種確切情況的情況下進行測試:

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

使用這種條件時,我的腳本可以正常工作,然后似乎返回的值在所有大寫情況下均為“ ERROR”。

可通過SonarQube管理設置中的Webhooks對其進行配置: https ://docs.sonarqube.org/display/SONAR/Webhooks

因此,該方法將返回您為所有“網關規則”配置為“正常”或失敗的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM