git jenkins sparse-checkout

Pagos dispersos de Jenkins y Git



sparse-checkout (3)

Tengo un gran repositorio en Git. ¿Cómo creo un trabajo en Jenkins que comprueba solo una subcarpeta del proyecto?


Podría tener un paso personalizado que simplemente usaría

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

Para borrarlo, puede simplemente rm -rf la carpeta de trabajo y volver a mkdir workingdir con mkdir workingdir . Esto requeriría que especifiques esta opción en el nivel de git del comando anterior:

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

Todo esto depende de lo bien que conoces a Jenkins.


Puede usar la función de pago escaso de Git. Tenga en cuenta que Git aún clona todo el repositorio en el disco local. Eso no está mal, sin embargo, porque está comprimido.

  1. Cree un nuevo trabajo en Jenkins, configure el repositorio de Git en la sección de Administración de código fuente.
  2. Construye el proyecto. Esto clonará todo el repositorio en el disco local.
  3. Abra la carpeta del espacio de trabajo de los proyectos, elimine todo allí excepto la carpeta .git.
  4. Abra el shell Git para la carpeta del espacio de trabajo del proyecto. Habilita la extracción dispersa:

    git config core.sparsecheckout true

  5. Actualizar árbol de trabajo:

    git read-tree -mu HEAD

  6. Cree sparse-checkout archivo de sparse-checkout en la carpeta .git / info. Agregue la ruta a la subcarpeta que desea verificar en ese archivo, al igual que (observe la barra inclinada):

    folder/to/include/

  7. Construye el proyecto de nuevo. Esta vez, solo una subcarpeta debería aparecer en la carpeta del espacio de trabajo.


Jenkins Git Plugin admite partidas dispersas desde git-plugin 2.1.0 (abril de 2014). Necesitarás git> = 1.7.0 para esta función. Se encuentra en "Comportamientos adicionales" -> "Rutas de salida dispersas".

Ver: Jira issue JENKINS-21809