当前位置: 首页 > 知识库问答 >
问题:

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

葛驰
2023-03-14

我对jenkins管道脚本和Sonarqube是新手。如果我能在下面的问题上得到一些帮助,那就太好了。当质量门检查失败时,我想不通过詹金斯声明管道作业。根据声纳文档(https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/#header-6),我尝试了以下两个场景,但两个场景似乎都不起作用,都因错误而失败。sonarqube分析工作良好,但在质量检查中失败。我在sonarserver中创建了webhook,它返回json输出。不知道我错过了什么。使用Sonrscanner的版本I-3.0.0.702

在代码下面运行时,得到错误“invalid parameter”abortpipeline“,你的意思是”null“吗?”我与

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 }
            }
        }
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" }
                    }
                }
        }

共有1个答案

庾鸿飞
2023-03-14

您可以尝试下面的代码作为解决办法。

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.')
                    }
 类似资料:
  • 在我的詹金斯管道中,我需要对SonarQube质量门做出反应。是否有一种更简单的方法来实现这一点,但是在Sonar-Scanner日志中查找结果页面(例如https://mysonarserver/sonar/api/ce/task?id=xxxx),并从那里解析JSON结果?

  • 然而,整体质量门应该以某种方式(数学上?)遵循一定的比例。 问:鉴于上述放宽,如何计算最合适的技术债务门槛? 从一篇旧文章(2009年,因此很可能不再适用)中扣除了以下公式:

  • 目前,我们试图将SonarQube分析添加到我们的jenkins工作管道中。但是每次构建作业失败时,都会出现以下消息:我们会重新安装所有插件和配置。无济于事。也许你们中有人能帮我们。 我们所做的: 从SonarQube执行本教程的所有步骤:用SonarQube扫描仪为Jenkins进行分析 > 安装SonarQube插件2.5 在管理詹金斯>配置系统下添加和配置SonarQube 在管理詹金斯>全

  • 本文向大家介绍Jenkins集成sonarQube实现代码质量检查过程图解,包括了Jenkins集成sonarQube实现代码质量检查过程图解的使用技巧和注意事项,需要的朋友参考一下 1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。 其工作流程如下: 如图Sonar

  • 问题内容: 在我的詹金斯管道中,我需要在SonarQube质量门上做出反应。有没有更简单的方法来实现此目的,而是在Sonar- Scanner日志中查找结果页面(例如https:// mysonarserver / sonar / api / ce / task?id = xxxx )并从那里解析JSON结果? 我使用Jenkins 2.30和SonarQube 5.3 提前致谢 问题答案: 使用

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n