如何从Jenkins管道脚本中的远程仓库克隆目录?

时间:2017-05-23 11:55:16

标签: git github jenkins jenkins-pipeline

我在GitHub Enterprise中有一个大型仓库,需要在我的Jenkins构建服务器上克隆一个子目录,然后构建该子目录。我正在使用管道脚本,现在就拥有它:

node {
    stage ('checkout') {
        git url: 'git@github.devops.mycompany.local:Org/MyLargeRepo.git'
    }
}

我想要的是从github.devops.mycompany.local:Org/MyLargeRepo/path/to/subproject

克隆

我知道我可能需要使用稀疏检出,但似乎无法解决如何在Jenkins管道脚本中配置它。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

看起来像declarative pipeline,而不是scripted pipeline

使用后者,你可以use the syntax seen in this answer,基于The Jenkins Git Plugin中的hudson.plugins.git.extensions.impl.SparseCheckoutPaths class

checkout([$class: 'GitSCM', 
    branches: [[name: '*/branchName']],
    doGenerateSubmoduleConfigurations: false,
    extensions: [
        [$class: 'SparseCheckoutPaths',  sparseCheckoutPaths:[[$class:'SparseCheckoutPath', path:'folderName/']]]
                ],
    submoduleCfg: [],
    userRemoteConfigs: [[credentialsId: 'someID',
    url: 'git@link.git']]])

不要忘记.git/info/sparse-checkout file