jenkins和Git稀疏结账
我在Git有一个大的仓库。 如何在Jenkins中创build一个只从项目中检出一个子文件夹的作业?
自从git-plugin 2.1.0(2014年4月)以来, Jenkins Git Plugin支持稀疏检出 。 这个function需要git> = 1.7.0。 它在“附加行为” – >“稀疏检查path”下。
请参阅:Jira issue JENKINS-21809
您可以使用Git的稀疏结帐function。 请注意,Git仍将整个存储库克隆到本地磁盘。 然而,这不是太糟糕,因为它是压缩的。
- 在Jenkins中创build一个新的工作,在Source Code Management部分设置Git仓库。
- build立这个项目。 这会将整个存储库克隆到本地磁盘。
- 打开项目的工作区文件夹,删除除.git文件夹以外的所有内容。
-
打开项目工作空间文件夹的Git shell。 启用稀疏检出:
git config core.sparsecheckout true
-
更新工作树:
git read-tree -mu HEAD
-
在.git / info文件夹中创build
sparse-checkout
文件。 添加path到您要签出该文件的子文件夹,如下所示(注意尾部斜线):folder/to/include/
-
再次build立该项目。 这次只有一个子文件夹应该出现在工作区文件夹中。
你可以有一个自定义的步骤,只是使用
git checkout your-branch -- the/desired/path anthother/desired/path
要清除它,你只需要rm -rf
工作文件夹,然后用mkdir workingdir
重新创build它。 这将需要你在上面的命令的git级别指定这个选项:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
这一切取决于你如何知道jenkins。