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

Configure Jenkin's SonarQube section using 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)
            }
    }

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

最终脚本

感谢@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)
            }
    }

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

sonar("Framework\xxx\xxx\sonar-project.properties")

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

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

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