Tengo un gran repositorio en Git. ¿Cómo creo un trabajo en Jenkins que comprueba solo una subcarpeta del proyecto?Pagos escasos de Jenkins y Git
Respuesta
Jenkins Git Plugin compatibilidad parches dispersos 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 JENKINS-21809
Desafortunadamente, Git todavía tendría que copiar el repositorio completo localmente. Por lo tanto, es posible que no experimente ninguna mejora de velocidad para que Git obtenga los archivos del servidor. – luka5z
Lamentablemente todavía lo verifica con la "estructura de ruta" original intacta, por lo que no es como si realmente comprobara "un directorio" simplemente pasa a llenar un solo directorio, FWIW – rogerdpack
Bastante y antiguo, pero ¿cómo definimos un nombres de subdirectorio con espacio. Quiero verificar "folder/to/include/directory withSpace" .. – OK999
Puede usar la característica sparse checkout 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.
- Cree un nuevo trabajo en Jenkins, configure el repositorio de Git en la sección Gestión de código fuente.
- Cree el proyecto. Esto clonará todo el repositorio en el disco local.
- Abra la carpeta del espacio de trabajo de los proyectos, elimine todo lo que haya, excepto la carpeta .git.
Abrir el shell Git para la carpeta de espacio de trabajo del proyecto. Habilitar escasa-checkout: árbol de trabajo
git config core.sparsecheckout true
Actualización:
git read-tree -mu HEAD
Crear
sparse-checkout
archivo en la carpeta .git/Información. Añadir camino hacia la sub-carpeta que desea para la obtención de dicho archivo, al igual que (nota barra diagonal):folder/to/include/
construir el proyecto de nuevo. Esta vez, solo una subcarpeta debería aparecer en la carpeta del espacio de trabajo.
¿Tienes que ejecutar esos comandos para cada trabajo? –
@RuudLenders Sí, debe hacerlo por cada trabajo que desee para pagar una sola subcarpeta. –
¿No debería el paso 5'git read-tree -mu HEAD' seguir el paso 6? Por lo que puedo seguir, primero debes decirle a Git qué archivos debería ver (paso 6) y luego leer la información del árbol en el índice. – borisdiakur
usted podría tener un paso a medida que sólo tiene que utilizar
git checkout your-branch -- the/desired/path anthother/desired/path
Para desactivarla sólo podría rm -rf
la carpeta de trabajo y volver a crearla con mkdir workingdir
. Para ello sería necesario que especifique esta opción en el nivel git del comando anterior:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
Todo esto depende de qué tan bien conoce Jenkins.
El problema es que Jenkins normalmente usa un complemento para obtener el código fuente y el complemento Git no le permite cambiar el comando para el pago. –
Supongo que escribir o modificar un complemento existente sería demasiado problemático. –
- 1. Jenkins Git plugin - 401
- 2. git jenkins función avanzada
- 3. Jenkins git plugin and branches
- 4. EC2/AWS, Jenkins, Git, SSH
- 5. Jenkins git no reconocer binaria
- 6. Pagos parciales y svn: externals
- 7. configurar git repositorio en Jenkins
- 8. Jenkins no pudo ejecutar git
- 9. Integration-Manager Git Workflow usando Jenkins/Hudson
- 10. Pagos automáticos de PayPal
- 11. lineales restringida por mínimos cuadrados Escasos solucionador
- 12. configuración de Jenkins
- 13. PayPal pagos recurrentes
- 14. Jenkins y JUnit
- 15. webhook de Jenkins y GitHub: HTTP 403
- 16. Configuración de RVM y Jenkins
- 17. implementaciones Escasos de cálculos de distancia en Python/scikit-learn
- 18. Jenkins enlazando a mi repositorio de git local
- 19. Las operaciones de Git cuelgan ocasionalmente en Jenkins en Windows
- 20. ¿Cómo incluir git changelog en los correos electrónicos de Jenkins?
- 21. Pago y envío rápidos de PayPal "pagos pendientes" con IPN
- 22. Entender lo que diferencia a jenkins y django-jenkins
- 23. Implementando pagos usando teléfonos celulares
- 24. Paypal pagos recurrentes IPN confirmación
- 25. Obtener de un servidor de git y enviar a otro servidor usando Jenkins
- 26. Jenkins y JaCoCo con SBT
- 27. Jenkins Git Plugin: ¿Cómo construir una etiqueta específica?
- 28. Jenkins + git: error "dime quién eres", ¿por qué necesita etiquetar?
- 29. Incrementando la versión del Proyecto Maven con Jenkins/Git
- 30. ¿Cómo salir desde svn y git en el mismo trabajo de Jenkins?
¿Es realmente necesario añadir que la complejidad? Una vez que el repositorio se clona la primera vez, git simplemente estaría tirando nuevos objetos. A menos que tu servidor jenkins carezca de suficiente almacenamiento, simplemente clonaría todo y evitaría cualquier complejidad adicional. – wadesworld