我正在慢慢潜入Jenkins的管道groovy dsl。我试图找出如何创建一个声纳的步骤,并反映Jenkins构建服务器中的质量门信息。
此时我已经为声纳定义了以下步骤:
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
它没有在OK
或Error
上设置它,但也使得构建步骤也变为WARN
(因此,不是漂亮的绿色或红色是黄色的漂亮颜色)。我一直在挖掘文档,但据我所知,没有真正的方法可以让步骤以任何方式进入WARN状态。并且在任何一个想法之间都有注意?
答案 0 :(得分:1)
根据CloudBees support,您可以通过自己设置currentBuild.result
来设置构建结果,因此,要获得指示不稳定状态的黄色球(单元测试失败),您可以执行以下操作:
currentBuild.result = 'UNSTABLE'
现在,当Sonar质量门状态为“WARN”时,您希望这样做。
他们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倍,我想摆脱它并替换用这个解决方案...还没有完成,但我正在分享我收集的笔记。