在使用Job DSL的多个SCM的情况下,仅对一个存储库进行更改

时间:2016-03-16 12:19:37

标签: git jenkins bitbucket jenkins-job-dsl

我正在通过复制模板作业在Jenkins中创建一个新工作。对于具有单个存储库的模板,我使用以下代码将分支更改为构建部分。

job('example') {
  using('template_job')
  configure { node ->
    node / scm / branches / 'hudson.plugins.git.BranchSpec' {
      name 'branchname'
     }
  }
}

但是现在我的模板作业有多个存储库,我必须使用配置块更改仅为其中一个存储库构建的分支。我怎样才能做到这一点。

我也尝试过以下代码。它不起作用,不做任何更改。是否会修改这项工作?

 configure {node ->
    node / scm/ 'hudson.plugins.git.GitSCM'[1]  / branches / 'hudson.plugins.git.BranchSpec'{ 
    name branchName1
    };   
    }

1 个答案:

答案 0 :(得分:0)

/运算符仅返回具有给定名称的第一个子节点。您需要将中间节点分配给变量,然后使用groovy.util.Node API访问任何子节点。从那时起,您可以使用/再次导航。下面的示例修改了第二个SCM配置,索引从零开始。

job('example') {
  using('template')
  configure { node ->
    def scms = node / scm / scms
    scms.children()[1] / branches / 'hudson.plugins.git.BranchSpec'{ 
      name('foo')
    }
  }
}