【发布时间】:2021-02-06 15:27:05
【问题描述】:
我有兴趣通过 SonarQube 分析我的 Jenkins 构建。最初,我使用了以下代码
stage('SonarCloud') {
steps {
withSonarQubeEnv('SonarQube') {
sh 'mvn clean package sonar:sonar '
}
}
}
但是,我已向here 询问如何指定服务器用于我的分析的质量门。根据提供的答案,我已将代码修改为如下所示
stage('SonarCloud') {
steps {
withSonarQubeEnv('SonarQube') {
script{
def projectName = "Some-Exp"
// Creating a fresh project and placing it on the server - Works fine
sh "curl -u ${env.SONAR_AUTH_TOKEN} '${env.SONAR_HOST_URL}/api/projects/create' -d 'name=${projectName}&project=${projectName}&branch=${env.BRANCH_NAME}'"
// Specifying Quality Gate that to be used when performing our analysis - Does not quite work
sh "curl -u ${env.SONAR_AUTH_TOKEN} '${env.SONAR_HOST_URL}/api/qualitygates/select' -d 'gateId=2&projectKey=${projectName}'"
// Analysing our project - Creates the entirely new project, much like the initial code did
sh "mvn sonar:sonar -Dsonar.host.url=${env.SONAR_HOST_URL}"
}
}
}
}
代码在 SonarQube 服务器上创建并放置了一个项目,但该项目仍然有一个默认质量门,并且它不包含任何分析(实际上,当前代码创建的输出与 sh 'mvn clean package sonar:sonar ' 行创建的输出相同我最初使用过)。没有错误或任何东西。问题是代码没有做我想做的事情。
这个post 提到我需要在分析之前将我的项目添加到配置文件组(这很有意义)。尝试使用一些参数添加sh "curl -u ${env.SONAR_AUTH_TOKEN} '${env.SONAR_HOST_URL}/api/qualityprofiles/add_project'",但没有太大帮助。
我想知道我错过了什么。我认为最后一行需要参数化,但我找不到任何可以使它工作的东西。
【问题讨论】:
标签: sonarqube jenkins-pipeline multibranch-pipeline