【发布时间】:2019-06-02 08:13:43
【问题描述】:
我有一个运行 Jenkins (2.150.1) 的 Docker 容器和另一个运行 SonarQube (7.4) 的 Docker 容器。 Jenkins 正在使用SonarQube Scanner for Jenkins 插件,并且扫描是在 Jenkins 容器上完成的。该项目的Jenkinsfile 如下所示:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'building...'
}
}
stage('Test') {
steps {
echo 'testing...'
withSonarQubeEnv ('SonarQube') {
sh '/var/jenkins_home/sonar-scanner/sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner'
}
echo 'really finished testing2'
}
}
stage("Quality Gate") {
steps {
timeout(time: 1, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
stage('Deployment') {
steps {
echo 'deploying...'
}
}
}
}
为了让扫描作为 Jenkins 管道作业的一部分工作,我通过下载 zip 文件并将其解压缩到:/var/jenkins_home/sonar-scanner/sonar-scanner-3.2.0.1227-linux
sonar-scanner
这很好,但我想通过以下方式改进它:
- 从我的
Jenkinsfile中取出sonar-scanner的硬编码路径 - 指定非本地位置
sonar-scanner,因为我现在需要在另一个 VM/容器而不是 Jenkins 容器上运行扫描
我尝试使用 Manage Jenkins > Global Tool Configuration > SonarQube Scanner 并更新了我的 Jenkinsfile 以使用 SONAR_RUNNER_HOME 而不是硬编码路径,但这没有用,我收到了一个错误 sonar-scanner can'找不到。
【问题讨论】:
标签: jenkins sonarqube sonarqube-scan