Después de usar Jenkins desde hace un tiempo, encontré que debe utilizar el menor número de empleos posible si desea volver a utilizar el directorio de origen.
La configuración predeterminada en Jenkins es que cada compilación utiliza un directorio diferente como su área de trabajo. Lo que implica que debe hacer una comprobación de SVN completa en cada compilación.Que toma para siempre
Si desea utilizar el mismo directorio de origen para cada compilación, debe preocuparse por la sincronización: solo una compilación a la vez. Por lo que sé, Jenkins no tiene medios de sincronización incorporados. La única forma es usar solo un ejecutor. Incluso entonces no puedes controlar la forma en que el ejecutor elige su próximo trabajo.
Digamos que el trabajo "Actualización SVN" desencadena la tarea "Crear". Alguien inicia "SVN actualización # 33", que se supone que desencadena "Build # 33". Sin embargo, si la función "Poll SCM" de Jenkins programa "Actualización SVN" # 34, no he encontrado una forma de decirle que "Build # 33" debe ejecutarse antes de "SVN update # 34". Por lo tanto, es posible que termine con la "actualización SVN # 34" que se ejecuta antes de "Build # 33", y todo falla. A menos que desactive manualmente el trabajo de sondeo. Y recuerda volver a habilitarlo después, por supuesto.
De todos modos. Después de usar Jenkins durante dos años, cambio mi respuesta a: Nunca utilice múltiples trabajos que comparten recursos (como el directorio de origen), y hornee toda la lógica en scripts de shell (para configuraciones de bucle).
Puede usar el [Bloqueador de compilación de Jenkins] (https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin) -plugin para bloquear el trabajo de "Actualización SVN" mientras el "Build" - el trabajo se está ejecutando. –