6

MultiScm を使用して 2 つの git リポジトリを複製する Jenkins ジョブがあります。ポーリング中に、2 つのリポジトリのうちの 1 つを無視したい。構成で「ポーリングは特定のパスのコミットを無視する」を手動で設定して、それを機能させることができます(除外するパスとして「.*」を使用)。

ジョブは job-dsl を介して作成されるため、job-dsl を介してこれを有効にしたいと考えています。ただし、変更された構成が見つかりません。ジョブの config.xml は、"Polling ignores..." 設定の有無にかかわらず同一です。

job-dsl を介してこれを有効にする方法について何か考えはありますか?

4

1 に答える 1

12

「Polling ignores commits in specific 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>

git コンテキスト内でConfigure ブロックを使用して、この構成を追加できます。

job('example') {
  multiscm {
    git {
      remote {
        github('jenkins/job-dsl-plugin')
      }
      configure { gitScm ->
        gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
          includedRegions('foo')
          excludedRegions('bar')
        }        
      }
    }
  }
}
于 2015-11-19T08:29:51.603 に答える