【问题标题】:Running SonarQube Scanner on a Jenkins remote slave在 Jenkins 远程从站上运行 SonarQube Scanner
【发布时间】: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

,在 Jenkins 容器上手动安装了 sonar-scanner

这很好,但我想通过以下方式改进它:

  1. 从我的Jenkinsfile 中取出sonar-scanner 的硬编码路径
  2. 指定非本地位置 sonar-scanner,因为我现在需要在另一个 VM/容器而不是 Jenkins 容器上运行扫描

我尝试使用 Manage Jenkins > Global Tool Configuration > SonarQube Scanner 并更新了我的 Jenkinsfile 以使用 SONAR_RUNNER_HOME 而不是硬编码路径,但这没有用,我收到了一个错误 sonar-scanner can'找不到。

【问题讨论】:

    标签: jenkins sonarqube sonarqube-scan


    【解决方案1】:

    在 Manage Jenkins > Global Tool Configuration > SonarQube Scanner 检查install automatically

    然后转到管理 Jenkins > 配置系统并添加以下内容

    名称应与 Jenkinsfile 中的行中的参数相同:withSonarQubeEnv('SonarQube')

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 2023-03-20
      • 2014-08-17
      • 2014-04-28
      相关资源
      最近更新 更多