I have a large repository in Git. How do I create a job in Jenkins that checks out just one sub-folder from the project?
Jenkins Git Plugin support sparse checkouts since git-plugin 2.1.0 (April, 2014). You will need git >= 1.7.0 for this feature. It is under "Additional Behaviors" -> "Sparse Checkout paths."
See: Jira issue JENKINS-21809
You can use sparse checkout feature of Git. Note that Git still clones whole repository to local disk. That's not too bad however, because it is compressed.
Open Git shell for project's workspace folder. Enable sparse-checkout:
git config core.sparsecheckout true
Update working tree:
git read-tree -mu HEAD
Create sparse-checkout
file in .git/info folder. Add path to sub-folder you want to checkout to that file, like so (note trailing slash):
folder/to/include/
Build the project again. This time only one sub-folder should appear in workspace folder.
You could have a custom step that would just use
git checkout your-branch -- the/desired/path anthother/desired/path
To clear it you could just rm -rf
the working folder and recreate it with mkdir workingdir
. This would require you to specify this option on the git level of the above command:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
All this depends on how well you know Jenkins.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.