我已经将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项目的网址传递给质量失败电子邮件,这样开发人员就可以直接从邮件跳转到相关的项目。你知道如何在管道中获得SonarQube项目的网址吗?
发布于 2020-04-08 21:37:25
您可以在声纳块中使用env var SONAR_HOST_URL,如下所示:
withSonarQubeEnv('my-sonar') {
echo '${env.SONAR_HOST_URL}'
// my-sonar.example.com
}发布于 2019-08-13 23:08:33
项目URL仅依赖于项目键。如果您知道项目键和SonarQube实例的宿主,那么类似于
ProjectURL =主机+ "/dashboard?id=“+ ProjectID
能行得通。
当您调用"sonar:sonar“时,您实际上引用的是通常定义项目密钥的sonar.properties文件,所以我不知道如何通过编程获得项目密钥,而不是从该文件中读取它。我建议您将项目密钥/主机保存在Jenkins文件中,并形成项目的URL,然后将其放在电子邮件正文中。
https://stackoverflow.com/questions/57471986
复制相似问题