使用 Job-DSL 配置 Jenkin 的 SonarQube 部分

Fra*_*ois 5 groovy jenkins sonarqube jenkins-job-dsl

使用 Job-DSL,我们可以在 Jenkins 中配置一个 C# 项目。

SonarQube 任务给我们带来了困难。

        StepContext.metaClass.sonar = {
        -> NodeBuilder nodeBuilder = new NodeBuilder()
            stepNodes << nodeBuilder.'hudson.plugins.sonar.SonarRunnerBuilder' {
                jdk('(Inherit From Job)')
                usePrivateRepository(false)
            }
    }
Run Code Online (Sandbox Code Playgroud)

如何sonar-project.properties使用 Job-DSL 脚本设置配置文件的路径?

声纳部分

最终剧本

感谢@Bruno César,我添加pathToSonarProjectProperties了参数。

    StepContext.metaClass.sonar = { String pathToSonarProjectProperties
        -> NodeBuilder nodeBuilder = new NodeBuilder()
            stepNodes << nodeBuilder.'hudson.plugins.sonar.SonarRunnerBuilder' {
                jdk('(Inherit From Job)')
                usePrivateRepository(false)
                project(pathToSonarProjectProperties)
            }
    }
Run Code Online (Sandbox Code Playgroud)

sonar使用相对于项目的根路径调用该函数sonar-project.properties

sonar("Framework\\xxx\\xxx\\sonar-project.properties")
Run Code Online (Sandbox Code Playgroud)

Bru*_*sar 5

SonarRunnerBuilder类中,有一个project属性表示具有项目属性的文件的路径。

与设置 JDK ( jdk('(Inherit From Job)')) 的方式相同,您可以设置 path 属性。在你的例子中,试试这样:

StepContext.metaClass.sonar = {
    -> NodeBuilder nodeBuilder = new NodeBuilder()
    stepNodes << nodeBuilder.'hudson.plugins.sonar.SonarRunnerBuilder' {
        jdk('(Inherit From Job)')
        usePrivateRepository(false)
        project('${your.path.here}')
    }
}
Run Code Online (Sandbox Code Playgroud)