【问题标题】:Jenkins waitForQualityGate wrong id詹金斯waitForQualityGate错误的ID
【发布时间】:2021-12-04 22:42:47
【问题描述】:

我正在尝试将 Sonarqube 集成到我的 Jenkins 管道中,在网关检查之前一切正常。

    stage('Sonar') {
        steps {
            withSonarQubeEnv(installationName: 'Sonarqube', credentialsId: 'sonar') {
            sh "$SCANNER_HOME/bin/sonar-scanner -D'sonar.projectKey=$JOB_NAME'"
            }
        }
    }
    stage("Quality Gate") {
        steps {
          timeout(time: 1, unit: 'HOURS') {
            waitForQualityGate abortPipeline: true
          }
        }
    }

withSonarQubeEnv 报告一个 id,例如:AXyPGkHZtOM2BAFbSUcX。使用 api/ce/task?id=AXyPGkHZtOM2BAFbSUcX 我可以看到进程状态和 analysisId(f.e. AXyPGkmqJtbgJ09MpQ6B) 关键是 waitForQualityGate 总是读取 api/qualitygates/project_status?analysisId=AXyLfj5JlX0w7MRERt_e 导致 404。 我从大约 5 小时就开始了,不能出去。 有人有想法吗?

【问题讨论】:

  • 考虑将 waitForQualityGate 块移动到 withSonarQubeEnv 之后,在同一阶段。

标签: jenkins sonarqube jenkins-declarative-pipeline


【解决方案1】:

阶段看起来不错,HTTP 404 问题是由于 SonarQube 不理解 projectKey 的外观,从上面你有-D'sonar.projectKey=$JOB_NAME' 。命令&变量定义错误,应该是-Dsonar.projectKey='$JOB_NAME'

这样,SonarQube 服务器将能够使用正确的密钥将分析发送回 Jenkins webhook

【讨论】:

    【解决方案2】:

    我发现了问题。 我将 sonarcube 临时文件移动到另一个位置。这些更改也反映在 Jenkins 上,但插件无法处理,因此它在 temp-dir 更改之前查找文件。

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 2019-11-11
      • 2019-05-23
      • 2019-10-06
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多