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仍将整个存储库克隆到本地磁盘。 然而,这不是太糟糕,因为它是压缩的。

  1. 在Jenkins中创build一个新的工作,在Source Code Management部分设置Git仓库。
  2. build立这个项目。 这会将整个存储库克隆到本地磁盘。
  3. 打开项目的工作区文件夹,删除除.git文件夹以外的所有内容。
  4. 打开项目工作空间文件夹的Git shell。 启用稀疏检出:

    git config core.sparsecheckout true 
  5. 更新工作树:

     git read-tree -mu HEAD 
  6. 在.git / info文件夹中创buildsparse-checkout文件。 添加path到您要签出该文件的子文件夹,如下所示(注意尾部斜线):

     folder/to/include/ 
  7. 再次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。