Jenkins和Git稀疏结账

Pav*_*uva 58 git sparse-checkout jenkins

我在Git中有一个大型存储库.如何在Jenkins中创建一个只从项目中检出一个子文件夹的作业?

uı6*_*uɐp 64

自git-plugin 2.1.0(2014年4月)以来,Jenkins Git Plugin支持稀疏检出.此功能需要git> = 1.7.0.它位于"附加行为" - >"稀疏结账路径"下.

截图

见:Jira问题JENKINS-21809

  • 不幸的是它仍然检查原始的"路径结构"完好无损,所以它不像实际检出"一个目录"它恰好只填充一个目录,FWIW (10认同)

Pav*_*uva 24

您可以使用Git的稀疏结账功能.请注意,Git仍然将整个存储库克隆到本地磁盘.然而,这并不是太糟糕,因为它是压缩的.

  1. 在Jenkins中创建一个新作业,在源代码管理部分设置Git存储库.
  2. 建立项目.这会将整个存储库克隆到本地磁盘.
  3. 打开项目的工作区文件夹,删除除.git文件夹之外的所有内容.
  4. 打开项目工作区文件夹的Git shell.启用稀疏检查:

    git config core.sparsecheckout true
    
    Run Code Online (Sandbox Code Playgroud)
  5. 更新工作树:

    git read-tree -mu HEAD
    
    Run Code Online (Sandbox Code Playgroud)
  6. sparse-checkout在.git/info文件夹中创建文件.添加要签出到该文件的子文件夹的路径,如下所示(注意尾部斜杠):

    folder/to/include/
    
    Run Code Online (Sandbox Code Playgroud)
  7. 再次构建项目.这次只有一个子文件夹应出现在工作区文件夹中.