¿Cómo seleccionar solo Jenkinsfile en lugar de toda la sucursal mientras utiliza Bitbucket Pullrequest Builder Plugin?

Fondo:

Los complementos de Jenkins con los que estoy trabajando son:

  • Complemento Bitbucket
  • Complemento de Builder de Pullrequest Bitbucket

La empresa para la que trabajo usa Jira + Bitbucket.

Implementé builds automáticas en Jenkins creando un trabajo de Jenkins "Bitbucket team" que escanea automáticamente los repositorys de la organización Bitbucket de la empresa y todas las sucursales dentro de cada repository y crea automáticamente trabajos para cada twig dentro de cada repository.

Una vez que se abre una request de extracción o se envía una confirmación a uno de estos repositorys, Jenkins activa una compilation para esa twig y esa request de extracción, respectivamente.

El Jenkinsfile de la tubería es idéntico en todos los repositorys.

El trabajo tiene algunas etapas que requieren ejecutar Docker y para eso hay un esclavo Jenkins instalado con Docker.

Una de las etapas es ejecutar docker-compose y para eso requiere un file docker-compose.yml que reside en el repository.

Ahora mi problema:

El trabajo que es responsable del escaneo de la organización BitBucket reside en el maestro Jenkins, lo que significa que el primer pago se realiza en el espacio de trabajo principal de Jenkins, mientras que una de las etapas principales de la compilation (compilation del docker-compose ) tiene lugar en el Jenkins máquina esclava "Docker" así que cuando llega a esa etapa los files del repository faltan allí, así que uso checkout scm nuevamente dentro del node('docker'){} para llevar los files recién comprometidos al área de trabajo de la máquina acopladora.

Eso significa que el repository se clona dos veces; una vez por el trabajo de escaneo que identifica la confirmación / PR – en el espacio de trabajo del maestro Jenkins y una segunda vez por el esclavo acoplable Jenkins en su espacio de trabajo.

Por ahora, los repositorys de la compañía no son tan grandes, pero podrían agrandarse en el futuro y quiero asegurarme de que los trabajos terminen su ejecución lo antes posible.

Así que me preguntaba si es posible anular de algún modo el "complemento BitBucket" para verificar solo Jenkinsfile de la twig donde se ha realizado el commit / PR en lugar de la twig completa.

¿Es posible tal cosa?

Si desea ver un solo file, puede hacerlo en un shell con este command:

 git archive --remote=git@git.xxx.xxx:project/your-repo.git HEAD:folder file | tar -x