簡體   English   中英

使用 Jenkins DSL 插件進行稀疏結賬?

[英]Sparse Checkout with Jenkins DSL Plugin?

有沒有人有正確的代碼示例

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

當前 Jenkins / Job DSL 版本允許通過指定生成多個稀疏結帳路徑

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

添加到'nbsp'給出的答案中,我必須添加以下粗體關鍵字(如果粗體不可見,則用雙星號括起來)才能使其正常工作。 希望這可以幫助某人。 :)

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

這對我有用,可以使用 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>")
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM