【问题标题】:How to obtain the SonarQube project URL in Jenkins pipeline?如何在 Jenkins 管道中获取 SonarQube 项目 URL?
【发布时间】:2019-12-19 16:05:36
【问题描述】:

我已将 SonarQube 与 Jenkins 集成,并且运行良好。现在我需要从管道中获取 SonarQube 项目 URL。我检查了文档,没有提及。下面是 SonarQube 分析和质量门对应的流水线阶段。

stage('SonarQube Analysis'){
    dir('.tmp'){
        withSonarQubeEnv('dev2-sonarqube') {
            withMaven(maven:'maven 3.5.3') {
                sh 'mvn clean package sonar:sonar'
            }
        } // SonarQube taskId is automatically attached to the pipeline context
    }
}

stage("Quality Gate"){

    timeout(time: 1, unit: 'HOURS') { // Just in case something goes wrong, pipeline will be killed after a timeout
        def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv
        if (qg.status != 'OK') {
            // error "Pipeline aborted due to quality gate failure: ${qg.status}"
            print "Quality Gate failed, but building is allowed for now"

            // send to email
            recipientList = committers.concat(env.tl_email)
            emailext (
                subject: "$env.JOB_NAME - Build #$env.BUILD_NUMBER - ${qg.status}",
                body: '''${SCRIPT,template="qg-fail.template"}''',
                to: "${recipientList}"
            )
        }
    }
}

我正在尝试将 SonarQube 项目 URL 传递给质量失败电子邮件,以便开发人员可以直接从邮件跳转到相关项目。知道如何在管道中获取 SonarQube 项目 URL?

【问题讨论】:

    标签: jenkins sonarqube


    【解决方案1】:

    您可以在声纳模块内使用 env var SONAR_HOST_URL,如下所示:

    withSonarQubeEnv('my-sonar') {
      echo '${env.SONAR_HOST_URL}'
      // my-sonar.example.com
    }
    

    【讨论】:

      【解决方案2】:

      项目 URL 仅取决于项目密钥。如果您知道 SonarQube 实例的项目密钥和主机,那么类似于

      ProjectURL = 主机 + "/dashboard?id=" + ProjectID

      可以工作。

      当你调用“sonar:sonar”时,你实际上是在引用你通常定义项目密钥的 sonar.properties 文件,所以我不知道有任何方法可以在不从 this 中读取项目密钥的情况下以编程方式获取项目密钥文件。我建议将您的项目密钥/主机保存在 Jenkins 文件中并形成项目的 URL,然后将其放入电子邮件正文中。

      【讨论】:

        猜你喜欢
        • 2021-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-08
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        相关资源
        最近更新 更多