使用Jenkins Job DSL为Git插件设置"Polling忽略某些路径中的提交"

tar*_*oga 5 jenkins-job-dsl

我有一个使用MultiScm来克隆2个git存储库的Jenkins作业.在轮询期间,我希望它忽略2个回购中的一个.我可以在配置中手动设置"轮询忽略某些路径中的提交"以使其工作(使用".*"作为排除路径).

我希望通过job-dsl启用它,因为它创建了工作; 但是,我找不到已更改的配置.作业的config.xml与"Polling ignores ..."设置相同或不相同.

有关如何通过job-dsl启用此功能的任何想法?

das*_*ker 9

当我添加"轮询忽略某些路径中的提交"行为时,以下元素将添加到配置XML:

<project>
  ...
  <scm class="org.jenkinsci.plugins.multiplescms.MultiSCM" plugin="multiple-scms@0.5">
    <scms>
      <hudson.plugins.git.GitSCM plugin="git@2.4.0">
        ...
        <extensions>
          <hudson.plugins.git.extensions.impl.PathRestriction>
            <includedRegions>foo</includedRegions>
            <excludedRegions>bar</excludedRegions>
          </hudson.plugins.git.extensions.impl.PathRestriction>
        </extensions>
      </hudson.plugins.git.GitSCM>
    </scms>
    ...
  </scm>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

您可以使用一个配置块的内git的情况下添加此配置:

job('example') {
  multiscm {
    git {
      remote {
        github('jenkins/job-dsl-plugin')
      }
      configure { gitScm ->
        gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
          includedRegions('foo')
          excludedRegions('bar')
        }        
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)