Configuración de GIT LFS en jenkins

Tengo un problema con el uso de GIT LFS en Jenkins. Lo que estoy haciendo ahora es eso

  1. Estoy construyendo una guerra de maven a través de Jenkins que war contiene un file jar
  2. a través de Git LFS hemos convertido ese file jar en un file de puntero. Pero durante el pago de Jenkins ese flask no se está convirtiendo a su tamaño original, sino que está incluido en la guerra como un puntero.

Hemos utilizado el plugin git y el plugin git-client con la versión 3.3.0 y 2.4.2 respectivamente en Jenkins.

Que esta pasando:

A.war -> a.jar (cuyo tamaño original es 1234 kb pero viene en 3 kb (que es el tamaño del file de puntero)

entonces mis preguntas son:

  1. cómo usar git LFS en Jenkins?
  2. ¿Hay algún complemento de Git Lfs por separado para Jenkins?
  3. ¿Cómo se debe convertir el file a su tamaño original durante el process de pago cuando uno usa Git LfS?

Esto se puede hacer utilizando el plugin regular de Git + para Jenkins (versión 3.1.0 en adelante).

Si está utilizando Jenkins Pipelines (es decir, con un Jenkinsfile en la raíz de su repository), la key es include la extensión [$class: 'GitLFSPull'] en su llamada a checkout() . Aquí hay un ejemplo (editado) tomado de uno de nuestros repositorys:

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: [ [cnetworkingentialsId: 'foobar', url: 'https://github.com/foo/bar.git'] ] ])

Usando el generador de fragments es posible generar este código, seleccionando "Git LFS pull after checkout" del menu "Behaviors adicionales". Ver captura de pantalla aquí