Jenkins管道中的Sonarqube质量门状态检查失败 [英] Sonarqube quality gate status check fail in Jenkins pipeline

查看:1124
本文介绍了Jenkins管道中的Sonarqube质量门状态检查失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Jenkins管道脚本和sonarqube是新手.如果我能在下面的问题上获得一些帮助,那将是很好的. 当质量门检查失败时,我想使Jenkins声明式管道作业失败.根据声纳文档( https://docs. sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/#header-6 ),我尝试了以下两种情况,但两种情况均无法正常工作,并因错误而失败. 声纳分析工作正常,但在QualityGate检查中失败.我在sonarserver中创建了webhook,该webhook返回json输出.不知道我在这里缺少什么. 我使用Sonrscanner版本的版本-3.0.0.702

Im new to jenkins pipeline scripting and 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. 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. sonarqube analysis is working fine but it failing at QualityGate check. I created webhook in sonarserver which is returning json output. Not sure what Im missing here. Version I using Sonrscanner version - 3.0.0.702

得到错误参数"abortPipeline"无效,您的意思是空"吗?"在以下代码下运行时.我对

Getting error "Invalid parameter "abortPipeline", did you mean "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 }
            }
        }

场景2:

正在获取错误无效的JSON字符串".经过分析,直到"test2",它仍无法读取状态waitForQualityGate().请指教. 我将脚本质量门置于saparate阶段,但仍然失败,并出现相同的错误.

scenario 2:

Getting error "Invalid JSON String". Below analysis, its going till the "test2" further its failing to read status 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"
                  }
                sleep time: 30000, unit: 'MILLISECONDS'
                script {
                        sh "curl -u username:password -X GET -H 'Accept: application/json' https://alm.accenture.com/sonar/api/qualitygates/project_status?projectKey=adop:SDSPDVCR:baggagetracking > status.json"
                        def json = readJSON file:'status.json'
                        echo "${json.projectStatus.status}"
                        if ("${json.projectStatus.status}" == "ERROR") {
                            currentBuild.result = 'FAILURE'
                            error('Pipeline aborted due to quality gate failure.')
                    }

这篇关于Jenkins管道中的Sonarqube质量门状态检查失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆