如何使用Jenkins JobDSL设置'检查特定的本地分支'在Git插件?

时间:2015-01-13 19:01:26

标签: jenkins jenkins-job-dsl

我有以下内容:

job {
  scm {
    git {
      remote {
        url(GIT_URL)
      }
      branch('master')
    }
  }
}

它工作得很好,但我希望它能够将'Check out to specific local branch'设置为'master'。怎么做的?

我在https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java中找不到任何可以使用的东西,但我可能错过了一些东西。

3 个答案:

答案 0 :(得分:4)

Job DSL目前不支持该选项,但您可以使用configure block修改生成的配置XML:

job {
  scm {
    git {
      remote {
        url(GIT_URL)
      }
      branch('master')
      configure { node ->
        node / 'extensions' << 'hudson.plugins.git.extensions.impl.LocalBranch' {
          localBranch('master')
        }
      }
    }
  }
}

答案 1 :(得分:4)

由于已经接受了答案,因此增加了对“检出特定本地分支”的支持:

Jersey 2.2

答案 2 :(得分:0)

还有另一种方法来执行命名的本地分支

multibranchPipelineJob(pathToJob) {
    branchSources { ... }
    configure {
        def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
        traits << 'jenkins.plugins.git.traits.LocalBranchTrait' {
            localBranch('**')
        }
    }
}