使用 Jenkins Job DSL 为 Git 插件设置 "Polling ignores commits in certain paths"
Using Jenkins Job DSL to set "Polling ignores commits in certain paths" for Git plugin
我有一个使用 MultiScm 克隆 2 个 git 存储库的 Jenkins 作业。
在轮询期间,我希望它忽略 2 个回购协议之一。我可以在配置中手动设置 "Polling ignores commits in certain paths" 以使其工作(使用“.*”作为排除路径)。
我想通过 job-dsl 启用它,因为作业是通过它创建的;但是,我找不到已更改的配置。无论有无 "Polling ignores..." 设置,作业的 config.xml 都相同。
知道如何通过 job-dsl 启用它吗?
当我添加 "Polling ignores commits in certain paths" 行为时,以下元素会添加到配置 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>
您可以使用 Configure Block within the git context 添加此配置:
job('example') {
multiscm {
git {
remote {
github('jenkins/job-dsl-plugin')
}
configure { gitScm ->
gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
includedRegions('foo')
excludedRegions('bar')
}
}
}
}
}
我有一个使用 MultiScm 克隆 2 个 git 存储库的 Jenkins 作业。 在轮询期间,我希望它忽略 2 个回购协议之一。我可以在配置中手动设置 "Polling ignores commits in certain paths" 以使其工作(使用“.*”作为排除路径)。
我想通过 job-dsl 启用它,因为作业是通过它创建的;但是,我找不到已更改的配置。无论有无 "Polling ignores..." 设置,作业的 config.xml 都相同。
知道如何通过 job-dsl 启用它吗?
当我添加 "Polling ignores commits in certain paths" 行为时,以下元素会添加到配置 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>
您可以使用 Configure Block within the git context 添加此配置:
job('example') {
multiscm {
git {
remote {
github('jenkins/job-dsl-plugin')
}
configure { gitScm ->
gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
includedRegions('foo')
excludedRegions('bar')
}
}
}
}
}