首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sonarqube质量门状态检查在Jenkins管道中失败

Sonarqube质量门状态检查在Jenkins管道中失败
EN

Stack Overflow用户
提问于 2020-04-09 00:45:14
回答 1查看 2.5K关注 0票数 0

我是jenkins管道脚本和sonarqube的新手。如果我能在下面的问题上得到一些帮助,那就太好了。当质量门检查失败时,我希望Jenkins声明性管道作业失败。根据声纳文档(https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/#header-6),我尝试了以下两个场景,但这两个场景似乎都不能工作,并出现错误。sonarqube分析工作正常,但在QualityGate检查中失败。我在sonarserver中创建了webhook,它返回json输出。不确定我在这里遗漏了什么。使用Sonrscanner的版本I- 3.0.0.702

场景1:

获取错误“无效参数”abortPipeline“”,您的意思是“null”吗?“当在代码下面运行时。我用的是

代码语言:javascript
运行
复制
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:

获取错误“Invalid JSON String”。在下面的分析中,它将继续到“test2”进一步它无法读取状态waitForQualityGate()。请给我建议。我把脚本质量门放在了saparate阶段,它仍然失败了,出现了同样的错误。

代码语言:javascript
运行
复制
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" }
                    }
                }
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 19:38:34

您可以尝试以下代码作为变通方法。

代码语言:javascript
运行
复制
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.')
                    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61105737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档