【问题标题】:How to use Jenkins JobDSL to set 'Check out to specific local branch' in Git Plugin?如何使用 Jenkins JobDSL 在 Git 插件中设置“签出到特定本地分支”?
【发布时间】:2020-03-04 04:28:45
【问题描述】:

我有以下几点:

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

它工作得很好,但我希望它将“签出到特定本地分支”设置为“主”。这是怎么做到的?

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

【问题讨论】:

    标签: jenkins jenkins-job-dsl


    【解决方案1】:

    自从编写了接受的答案以来,已添加对“签出到特定本地分支”的支持:

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

    【讨论】:

      【解决方案2】:

      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')
              }
            }
          }
        }
      }
      

      【讨论】:

        【解决方案3】:

        还有另一种方式来做命名的本地分支:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-15
          • 2019-04-02
          • 1970-01-01
          • 2012-04-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多