[英]Sonarqube quality gate status check fail in Jenkins pipeline
Im new to jenkins pipeline scripting and sonarqube.我是 jenkins 流水线脚本和 sonarqube 的新手。 it would be great if I can get some help with the question below.
如果我能在下面的问题上得到一些帮助,那就太好了。 I want to fail the Jenkins declarative pipeline job when quality gate check fails.
当质量门检查失败时,我想使 Jenkins 声明性管道作业失败。 As per sonar documentation ( https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/#header-6 ), I tried with below two scenrions but both are seems not working and failing with errors.
根据声纳文档( https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/#header-6 ),我尝试了以下两个场景,但两者似乎都没有工作并且出现错误。 sonarqube analysis is working fine but it failing at QualityGate check.
sonarqube 分析工作正常,但在 QualityGate 检查中失败。 I created webhook in sonarserver which is returning json output.
我在返回 json output 的声纳服务器中创建了 webhook。 Not sure what Im missing here.
不知道我在这里缺少什么。 Version I using Sonrscanner version - 3.0.0.702
版本 I 使用 Sonrscanner 版本 - 3.0.0.702
Getting error “Invalid parameter “abortPipeline”, did you mean “null”?”收到错误“无效参数“abortPipeline”,您的意思是“null”吗?” when run below code.
在以下代码运行时。 I saprated with
我用
stage('Sonarqube Analysis') {
environment {
scannerHome = tool 'ALM Sonar'
}
steps {
withSonarQubeEnv('ALM Prod Sonar') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
stage("Quality Gate") {
steps {
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true }
}
}
Getting error “Invalid JSON String”.出现错误“无效的 JSON 字符串”。 Below analysis, its going till the “test2” further its failing to read status waitForQualityGate().
在下面的分析中,直到“test2”进一步它未能读取状态waitForQualityGate()。 Please advise.
请指教。 I put the script quality gate in saparate stage still its failing with same error.
我将脚本质量门置于单独的阶段仍然失败并出现相同的错误。
stage('Sonarqube Analysis') {
environment {
scannerHome = tool 'ALM Sonar'
}
steps {
withSonarQubeEnv('ALM Prod Sonar') {
sh "${scannerHome}/bin/sonar-scanner"
}
sleep time: 30000, unit: 'MILLISECONDS'
echo "test1"
script {
echo "test2"
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
echo "test3" }
}
}
}
You can try below code as a work around.您可以尝试以下代码作为解决方法。
stage('Sonarqube Analysis') {
environment {
scannerHome = tool 'Sonar scanner'
}
steps {
withSonarQubeEnv('Sonarserver') {
sh "${scannerHome}/bin/sonar-scanner"
}
if ("${json.projectStatus.status}" == "ERROR") {
currentBuild.result = 'FAILURE'
error('Pipeline aborted due to quality gate failure.')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.