Jenkinsとgitlfs

やりたいこと

Jenkinsのgit pluginで一部だけgit lfs pullしたい

わかっていること

  • git lfs pull -I "$target" で対象のディレクトリ・ファイルだけダウンロードできる
  • git lfs install --skip-smudge しておかないと、最初のcheckoutで全部git lfs pullしようとするっぽい
  • JenkinsのGit Pluginがcloneするより前に git lfs install --skip-smudge

結果

  • JenkinsのGit Pluginによるチェックアウトは無効にする
  • shellで lfs pull する
# Git Pluginのcloneだと、git lfs pullをスキップできないので、事前に--skip-sumudgeを設定してから手動でcloneする
git init
git lfs install --skip-smudge --local
git remote add origin <repository>
git pull origin master
 
# 対象ディレクトリのみlfs pullすることで時間短縮、容量削減
git lfs pull -I "$targetIn"