web-dev-qa-db-ja.com

JenkinsでのGit LFSセットアップ

Jenkinsでのgit LFSの使用に問題があります。私が今やっていることは

  1. 戦争がjarファイルを含むという、メイベンからジェンキンスまでの戦争を構築しています
  2. git LFSを使用して、そのjarファイルをポインターファイルに変換しました。しかし、Jenkinsからのチェックアウト中に、そのjarファイルは元のサイズに変換されず、ポインタとして戦争に含まれます。

Jenkinsでは、それぞれバージョン3.3.0および2.4.2のgitプラグインとgit-clientプラグインを使用しました。

何が起こっている:

A.war-> a.jar(元のサイズは1234 kbですが、3 kbになります(これはポインタファイルのサイズです)

だから私の質問は:

  1. jenkinsでgit LFSを使用する方法?
  2. jenkins用の別のGit Lfsプラグインはありますか?
  3. Git LfSを使用する場合、チェックアウト時にファイルを元のサイズに変換するにはどうすればよいですか?
7
Sidharth Rath

これは、Jenkinsの通常の Git + Plugin を使用して実行できます(バージョン3.1.0以降)。

Jenkinsパイプラインを使用している場合(つまり、リポジトリのルートにJenkinsfileがある場合)、重要なのは、checkout()呼び出しに拡張子[$class: 'GitLFSPull']を含めることです。以下は、私たちのリポジトリの1つから取られた(編集された)例です。

checkout([  $class: 'GitSCM', 
    branches: [[name: 'refs/heads/'+env.BRANCH_NAME]],
        doGenerateSubmoduleConfigurations: false,
        extensions: [
            [$class: 'GitLFSPull'],
            [$class: 'CheckoutOption', timeout: 20],
            [$class: 'CloneOption',
                    depth: 0,
                    noTags: false,
                    reference: '/other/optional/local/reference/clone',
                    shallow: false,
                    timeout: 120]
        ],
        submoduleCfg: [],
        userRemoteConfigs: [
            [credentialsId: 'foobar',
            url: 'https://github.com/foo/bar.git']
        ]
    ])

スニペットジェネレーターを使用すると、[追加の動作]メニューから[チェックアウト後のGit LFSプル]を選択して、このコードを生成できます。 こちらのスクリーンショットを参照

16
Andy Smith

これは、「Pre SCM BuildStep」プラグインで実行できます。

  1. Jenkinsに“ Pre SCM BuildStep”プラグインを追加します。
  2. ジョブ構成で、ビルド環境セクションのプロパティRun buildstep before SCMを選択し、ビルドステップの追加、実行シェルの選択の順にクリックします。シェルに以下のコマンドを追加し、git lfs install
  3. ソースコード管理セクション->追加動作->追加チェックアウト後にGit LFSプル

参照リンク

5
Priya Talreja