How to clone a directory from a remote repo in a Jenkins pipeline script?
11,212
That looks like declarative pipeline, and not scripted pipeline
With the latter, you can use the syntax seen in this answer, based on the hudson.plugins.git.extensions.impl.SparseCheckoutPaths
class from The Jenkins Git Plugin:
checkout([$class: 'GitSCM',
branches: [[name: '*/branchName']],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'SparseCheckoutPaths', sparseCheckoutPaths:[[$class:'SparseCheckoutPath', path:'folderName/']]]
],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'someID',
url: '[email protected]']]])
Don't forget the .git/info/sparse-checkout
file
Author by
Mark Allison
Updated on June 09, 2022Comments
-
Mark Allison almost 2 years
I have a large repo in GitHub Enterprise and need to clone a sub-directory from it on my Jenkins build server and just build that sub-directory. I am using a pipeline script and have this right now:
node { stage ('checkout') { git url: '[email protected]:Org/MyLargeRepo.git' } }
What I want is to clone from
github.devops.mycompany.local:Org/MyLargeRepo/path/to/subproject
I know I probably need to use sparse checkouts, but can't seem to work out how to configure that in a Jenkins pipeline script. Any ideas?