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?
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With