69

Gitに大きなリポジトリがあります。プロジェクトからサブフォルダーを1つだけチェックアウトするジョブをJenkinsで作成するにはどうすればよいですか?

4

3 に答える 3

75

Jenkins Gitプラグインは、git-plugin 2.1.0(2014年4月)以降、スパースチェックアウトをサポートしています。この機能にはgit>=1.7.0が必要です。これは、「追加の動作」->「スパースチェックアウトパス」の下にあります。

スクリーンショット

参照:Jiraの問題JENKINS-21809

于 2014-07-18T09:56:21.457 に答える
29

Gitのスパースチェックアウト機能を使用できます。Gitは引き続きリポジトリ全体をローカルディスクに複製することに注意してください。ただし、圧縮されているため、それほど悪くはありません。

  1. Jenkinsで新しいジョブを作成し、[ソースコード管理]セクションでGitリポジトリを設定します。
  2. プロジェクトをビルドします。これにより、リポジトリ全体がローカルディスクに複製されます。
  3. プロジェクトのワークスペースフォルダーを開き、.gitフォルダーを除くすべてを削除します。
  4. プロジェクトのワークスペースフォルダーのGitシェルを開きます。スパースチェックアウトを有効にします。

    git config core.sparsecheckout true
    
  5. 作業ツリーの更新:

    git read-tree -mu HEAD
    
  6. sparse-checkout.git/infoフォルダーにファイルを作成します。次のように、チェックアウトするサブフォルダーへのパスをそのファイルに追加します(末尾のスラッシュに注意してください)。

    folder/to/include/
    
  7. プロジェクトを再ビルドします。今回は、1つのサブフォルダーのみがワークスペースフォルダーに表示されます。

于 2012-05-28T23:30:46.990 に答える
1

使用するだけのカスタムステップを作成できます

git checkout your-branch -- the/desired/path anthother/desired/path

クリアするにはrm -rf、作業フォルダだけを使用して再作成しますmkdir workingdir。これには、上記のコマンドのgitレベルでこのオプションを指定する必要があります。

git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path

これはすべて、Jenkinsをどれだけよく知っているかによって異なります。

于 2012-05-29T00:25:38.967 に答える