使用Jenkins DSL插件进行稀疏校验?

cgvd09ve  于 2022-11-28  发布在  Jenkins
关注(0)|答案(4)|浏览(591)

是否有人有正确的

configure { ... }

Jenkins DSL插件中设置git稀疏 checkout 所需的块?
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>
cbjzeqam

cbjzeqam1#

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}")
                        }
                    }
                }
            }
        }
    }
}
hgc7kmma

hgc7kmma2#

当前的Jenkins / Job DSL版本允许通过指定以下内容来生成多个稀疏 checkout 路径

git {
          remote {
            url('ssh://...')
            credentials('...')
          }
          branch('*/master')
          extensions {
            sparseCheckoutPaths {
              sparseCheckoutPaths {
                sparseCheckoutPath {
                    path('path1')
                }
                sparseCheckoutPath {
                    path('path2')
                }
              }
ix0qys7i

ix0qys7i3#

除了“nbsp”给出的答案之外,我还必须添加以下粗体关键字(如果粗体不可见,则用双星号括起来)才能使其工作。希望这对某些人有所帮助。:)

configure { git ->
                git / 'extensions' / 'hudson.plugins.git.extensions.impl.SparseCheckoutPaths' {
                      **sparseCheckoutPaths {**
                            sparseCheckoutPath.each { checkoutPath ->
                               'hudson.plugins.git.extensions.impl.SparseCheckoutPath' {
                                    path("${checkoutPath}")
                                }
                            }
                      **}**
                }
           }
ht4b089n

ht4b089n4#

我使用DSL创建了一个带有共享库的文件夹

folder("<your_folder_name_path>"){
            properties {
                folderLibraries {
                    libraries {
                        libraryConfiguration {
                            name("<your_shared_lib_name>")
                            implicit(true)
                            defaultVersion("<your_default_version>")
                            retriever {
                                scmSourceRetriever {
                                    scm {
                                        git {
                                            credentialsId("<credentials>")
                                            remote("<remote_url>")
                                            traits {
                                                cloneOptionTrait {
                                                    extension {
                                                        shallow( true )
                                                        noTags( true )
                                                        honorRefspec(true)
                                                        depth(1)
                                                        reference('')
                                                        timeout(10)
                                                    }
                                                }
                                                sparseCheckoutPathsTrait {
                                                    extension {
                                                        sparseCheckoutPaths {
                                                            sparseCheckoutPath {
                                                                path("<my_sparse_checkout_path>")
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

相关问题