El complemento Jenkins Artifactory no se descarga en varios subprocesos


8

En mi empresa, estamos pasando un mal momento tratando de descargar con el complemento Artifactory en Jenkins porque tenemos muchos archivos pequeños en nuestro repositorio y aparentemente el complemento funciona en un solo hilo, por lo que lleva REALMENTE mucho tiempo. Probamos la CLI de JFrog donde podemos establecer el número de subprocesos para la descarga y eso realmente funciona muy bien. Aún así, realmente necesitamos usar el complemento original.

¿Hay alguna solución para esto? ¿Quizás tenga algo que ver con la configuración del servidor Artifactory?

Nota : Temo que tenemos muchos archivos pequeños porque así es como se está haciendo el desarrollo en la empresa. Pensamos en archivar todos los archivos antes de almacenarlos, pero eso probablemente no sería económico en términos de almacenamiento, ya que cada archivo zip cargado probablemente tendría una suma de verificación diferente.


Por lo general, uno empaquetaría la aplicación antes de cargarla en artefacto. Me preguntaba cómo se utilizó artefacto en su proceso de desarrollo, cuál es la plataforma o el lenguaje utilizado y cómo se consumen estos archivos. Tener una imagen más amplia del proceso podría ayudarnos a encontrar posibles soluciones que podrían no ser obvias cuando nos centramos solo en el problema de descarga.
Newtopian

Respuestas:


5

Puede intentar ejecutar la carga de archivos de artefactos en paralelo si está utilizando la sintaxis de Jenkinsfile: https://github.com/jenkinsci/pipeline-examples/blob/master/pipeline-examples/parallel-from-list/parallelFromList.groovy

Aquí hay un ejemplo más simple para ejecutar cosas en paralelo si solo tiene un número fijo de cosas que desea hacer en paralelo:

parallel (
    "task1" : {
        //runTask1
    },
    "task2" : {
        //runTask2
    },
    "task3" : {
        //runTask3
    },
)

Esto puede encerrarse dentro de a node, en cuyo caso todos compartirían el mismo espacio de trabajo o cada comando puede definir nodedentro del código de la tarea para ejecutarse en otro nodo, en cuyo caso tendría un espacio de trabajo diferente para cada tarea.


¡Hola Michael! Estaba hablando más sobre descargar archivos y no subirlos. Si hiciera esto con la descarga, ¿no guardaría los archivos en diferentes nodos en lugar de un solo espacio de trabajo?
Asaf Haim

No necesariamente, te daré un mejor ejemplo en unos momentos
Michael Pereira,

No estoy seguro de que coincida con mi caso, ya que cuando descargo artefactos, no sé la cantidad exacta de artefactos (usando una sintaxis similar a una hormiga para descargar todo el repositorio)
Asaf Haim

En ese caso, eche un vistazo a jenkins.io/doc/pipeline/examples/#jobs-in-parallel Puede reutilizar el mismo código y simplemente cambiar el contador de bucle a la cantidad de elementos que tiene que descargar y reemplazar la build joblínea con el que se debe descargar de la artefacto
Michael Pereira

¿Pero qué pasa si no sé la cantidad de archivos que descargo? Utilizo la notación de doble asterisco (**) para descargar recursivamente todo mi repositorio, por lo que ni sé cuántos hay ni sus nombres.
Asaf Haim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.