continuous-integration hudson archive jenkins artifacts

continuous integration - Archivar los artefactos en Jenkins



continuous-integration hudson (4)

Además, ¿Jenkins elimina los artefactos después de cada compilación? (No los artefactos archivados, sé que puedo decir que los elimine)

No, Hudson / Jenkins no borra por sí solo el espacio de trabajo después de una compilación. Es posible que tenga acciones en su proceso de creación que borren, sobrescriban o muevan artefactos de construcción desde donde los dejó. Hay una opción en la configuración del trabajo, en Opciones de proyecto avanzadas (que debe ampliarse), llamada "Limpiar espacio de trabajo antes de compilar", que borrará el espacio de trabajo al comienzo de una nueva compilación.

¿Podría alguien explicarme la idea de los artefactos en el proceso de construcción?

Tengo el directorio del área de trabajo donde reviso el código para compilar y ejecutar mis scripts de hormiga, etc. Al final, en mi caso, obtengo un archivo jar que está listo para instalar. ¿Se considera que es el artefacto?

¿Dónde debería decirle a mi script de compilación que coloque el archivo jar? En el directorio del espacio de trabajo? Mi archivo jar obtiene un nombre de archivo único según variables como BUILD_ID y tal, ¿cómo puedo decirle a Jenkins qué archivo jar elegir?

EDITAR: Bien, entonces intenté hacer algo como esto:

La ruta todavía no existe en mi espacio de trabajo, porque se supone que el script de compilación lo crea y, por supuesto, los archivos .jar y .properties no están allí porque todavía no se han generado. ¿Por qué me da un error, entonces? Parece que me estoy perdiendo algo.

Además, ¿Jenkins borra los artefactos después de cada compilación (no los artefactos archivados, sé que puedo decir que los elimine)? De lo contrario, obstruirá el disco duro con bastante rapidez.


En Jenkins 2.60.3 hay una manera de eliminar artefactos de compilación (no los artefactos archivados) para ahorrar espacio en el disco duro en la máquina de compilación. En la sección General, marque "Descartar compilaciones antiguas" con la estrategia "Rotación de logs" y luego vaya a sus opciones Avanzadas. Aparecerán dos opciones más relacionadas con el mantenimiento de artefactos de construcción para el trabajo en función del número de días o construcciones.

Las configuraciones que funcionan para mí son ingresar 1 para "Número máximo de compilaciones para conservar los artefactos" y luego tener una acción posterior a la compilación para archivar los artefactos. De esta forma, todos los artefactos de todas las construcciones se archivarán, toda la información de las compilaciones se guardará, pero solo la última compilación conservará sus propios artefactos.

Descartar opciones de construcciones antiguas


Su comprensión es correcta, un artefacto en el sentido de Jenkins es el resultado de una compilación, el resultado previsto del proceso de compilación.

Una convención común es colocar el resultado de una compilación en un directorio build , target o bin .

El archivador de Jenkins puede usar globs ( target/*.jar ) para recoger fácilmente el archivo correcto, incluso si tiene un nombre único por compilación.


Un artefacto puede ser cualquier resultado de su proceso de construcción. Lo importante es que no importa en qué cliente se haya construido, se transferirá del área de trabajo al maestro (servidor) y se almacenará allí con un enlace a la compilación. La ventaja es que está versionada de esta manera, solo tiene que configurar la copia de seguridad en su maestro y que todos los artefactos son accesibles a través de la interfaz web, incluso si todos los clientes de compilación están fuera de línea.

Es posible definir una expresión regular como el nombre del artefacto. En mi caso, comprimí todos los archivos que quería almacenar en un archivo con un nombre constante durante la compilación.