在一个jenkinsfile中,我已经通过SparseCheckoutPaths指定了要 checkout 的folderName。但是我得到的却是一个完整的分支 checkout 。
checkout([$class: 'GitSCM',
branches: [[name: '*/branchName']],
extensions: [[$class: 'SparseCheckoutPaths', path: 'FolderName']],
userRemoteConfigs: [[credentialsId: 'someID',
url: 'git@link.git']]])
3条答案
按热度按时间icomxhvb1#
这里是我自己问题的答案。关于它是如何工作的背景知识,有一个名为sparsecheckout的git客户端标志/配置,它负责这种 checkout 。此外,还需要一个名为 sparse-checkout 的文件。有关更多信息,请查看here。
我的问题是Jenkinsfile的语法,正确的语法如下:
有关更多信息,请参阅github-link
jucafojl2#
您可以在一个共享库中定义一个自定义步骤
sparseCheckout
,该共享库添加到现有checkout scm
之上。vars/sparseCheckout.groovy
:然后你调用它:
ymdaylpp3#
您的语法看起来不错,但是,如“
jenkinsci/plugins/gitclient/CliGitAPIImpl.java
”中所示,您是否指定了正确的配置?换句话说,
git config core.sparsecheckout
是否等于您要 checkout 的存储库中的true
?