2017-08-16 70 views
1

我正在緩慢潛入詹金斯的管道groovy dsl。我正試圖弄清楚如何創建一個聲納步驟,並反映Jenkins buildserver中的質量門信息。詹金斯SonarQube一步去警告

在這一刻我已在如下因素步definded聲納:

stage ('sonar') { 
    mvn "-Dsonar.lang.patterns.jsp=notverified -Dsonar.host.url=http://sonar.server.example:9494 org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar -Dsonar.login=key 
} 

現在我想,當Maven的獲取:

[INFO] Quality gate status: WARN 

,它不設置上OKError但使得構建步驟也變爲WARN(所以不是好的綠色或紅色是黃色的好顏色)。我一直在挖掘文檔,但據我所知,沒有真正的方法讓步驟以任何方式進入WARN狀態。而且在任何一個想法中間都會注意到?

回答

1

CloudBees support,你可以自己設置currentBuild.result設置構建結果,因此,得到黃色圓球,指示不穩定狀態(失敗的單元測試),你可以這樣做:

currentBuild.result = 'UNSTABLE' 

現在,你想要在Sonar質量門狀態爲「警告」時執行此操作。

他們document how to do it:首先你withSonarQubeEnv('Your Sonar server')包裝你的聲納執行,那你就等着服務器給你的結果與waitForQualityGate()回電:

stage("Build & SonarQube analysis") { 
    node { 
     withSonarQubeEnv('My SonarQube Server') { 
      sh 'mvn clean package sonar:sonar' 
     } 
    } 
} 

stage("Quality Gate Check"){ 
    timeout(time: 20, unit: 'MINUTES') { 
     def qg = waitForQualityGate() 
     if (qg.status == 'WARN') { 
      currentBuild.result = 'UNSTABLE' 
     } 
    } 
} 

我沒有測試過這一點,我有一個過時的版本我計劃在有空的時候進行升級,使用比上述複雜10倍的手動腳本方式,我想擺脫它並用此解決方案替換它...尚未完成,但我正在分享筆記I集。

+0

我去試試,這個tomrow(我的時區)。讓你知道。 – Thadir