2

有没有人有正确的代码示例

configure { ... }

Jenkins DSL 插件中需要设置 git 稀疏结帐的块吗?

似乎 config.xml 部分如下所示:

<extensions>
  <hudson.plugins.git.extensions.impl.CloneOption>
    <shallow>false</shallow>
    <reference>/build/jenkins/codebase.git</reference>
  </hudson.plugins.git.extensions.impl.CloneOption>
  <hudson.plugins.git.extensions.impl.SparseCheckoutPaths>
    <sparseCheckoutPaths>
      <hudson.plugins.git.extensions.impl.SparseCheckoutPath>
        <path>BillOfMaterials.yml</path>
      </hudson.plugins.git.extensions.impl.SparseCheckoutPath>
      <hudson.plugins.git.extensions.impl.SparseCheckoutPath>
        <path>jenkins/job/</path>
      </hudson.plugins.git.extensions.impl.SparseCheckoutPath>
    </sparseCheckoutPaths>
  </hudson.plugins.git.extensions.impl.SparseCheckoutPaths>
</extensions>
4

3 回答 3

7
job('job1') {
    description 'sparse checkout example'
    scm {
        git {
            reference('/build/jenkins/codebase.git')
            configure { git ->
                git / 'extensions' / 'hudson.plugins.git.extensions.impl.SparseCheckoutPaths' / 'sparseCheckoutPaths' {
                    ['mypath1', 'mypath2', 'mypath3'].each { mypath ->
                        'hudson.plugins.git.extensions.impl.SparseCheckoutPath' {
                            path("${mypath}")
                        }
                    }
                }
            }
        }
    }
}
于 2016-01-09T01:40:34.103 回答
2

当前的 Jenkins / Job DSL 版本允许通过指定生成多个稀疏结帐路径

        git {
          remote {
            url('ssh://...')
            credentials('...')
          }
          branch('*/master')
          extensions {
            sparseCheckoutPaths {
              sparseCheckoutPaths {
                sparseCheckoutPath {
                    path('path1')
                }
                sparseCheckoutPath {
                    path('path2')
                }
              }
于 2021-02-03T15:39:43.093 回答
1

添加到“nbsp”给出的答案中,我必须添加以下粗体关键字(如果粗体不可见,则括在双星号内)以使其正常工作。希望这可以帮助某人。:)

configure { git ->
                git / 'extensions' / 'hudson.plugins.git.extensions.impl.SparseCheckoutPaths' {
                      **sparseCheckoutPaths {**
                            sparseCheckoutPath.each { checkoutPath ->
                               'hudson.plugins.git.extensions.impl.SparseCheckoutPath' {
                                    path("${checkoutPath}")
                                }
                            }
                      **}**
                }
           }
于 2017-08-30T10:22:24.373 回答