繁体   English   中英

Jenkins插件“ Sonarqube扫描仪”中所有可能返回的值是什么

[英]What are all possible returned value in Jenkins plugin “Sonarqube scanner”

我有一个Jenkins管道作业,可构建我的应用程序,进行声纳分析,然后通过mvn deploy在ou Nexus中部署,通过了质量门。

初始设置仅在成功的情况下发布(摘自官方文档 ):

stage("Quality Gate"){
      timeout(time: 1, unit: 'HOURS') {
          def qg = waitForQualityGate()
          if (qg.status != 'OK') {
              error "Pipeline aborted due to quality gate failure: ${qg.status}"
          }
      }
    }

现在我们想在Jenkins中更改一些逻辑门,并且我们希望在没有错误的情况下进行发布(但可以接受警告)。

为此,我将Jenkins座标更改为:

stage("Quality Gate"){
  timeout(time: 1, unit: 'HOURS') {
      def qg = waitForQualityGate()
      if (qg.status == 'Error') {
          error "Pipeline aborted due to quality gate failure: ${qg.status}"
      }
  }
}

stage('Deploy to Nexus') {
    sh "mvn deploy -DskipTests"
}

但是现在,它似乎无法正常运行:即使SonarQube中的Quality(质量)门出现错误,我的项目也总是被推送到Nexus。

我可以通过更改条件来解决此问题:

qg.status != 'OK' || qg.status != 'Warning' 

任何人都知道错误状态的确切值是多少(可能还有其他值)?

该文档似乎不完整,除了猜测正确的返回值外,没有其他方法。

为了防止出现此类问题,我建议在没有这种确切情况的情况下进行测试:

if ('error'.equalsIgnoreCase(qg.status) ) {
    error "Pipeline aborted due to quality gate failure: ${qg.status}"
} 

使用这种条件时,我的脚本可以正常工作,然后似乎返回的值在所有大写情况下均为“ ERROR”。

可通过SonarQube管理设置中的Webhooks对其进行配置: https ://docs.sonarqube.org/display/SONAR/Webhooks

因此,该方法将返回您为所有“网关规则”配置为“正常”或失败的所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM