¿Cómo clono un trabajo en Jenkins?

231

Jenkinstiene el Gerritcomplemento en su lugar para que cuando realicemos registros Gerrit, Jenkinsrealice una compilación y, si tiene éxito, Gerritse verifique la modificación . Si la compilación falla, entonces no lo es. Entiendo que esto se logra a través de trabajos establecidos en Jenkins. Ahora hemos creado una nueva rama ( git) y creo que necesito clonar los trabajos existentes apuntando a la otra rama para que se produzca este mismo flujo de trabajo y se realicen compilaciones en cada confirmación. ¿Alguien puede explicar cómo clonaría estos trabajos? Parece que no veo una manera de hacerlo a través de la interfaz de usuario ni puedo ver una forma de enumerar los trabajos a través de la interfaz de usuario.

GregH
fuente
77
Debería poder "Copiar trabajo existente" como una de las opciones en la página Nuevo trabajo. Ver stackoverflow.com/questions/3133537/…
nofinator

Respuestas:

180

Para copiar un trabajo existente, vaya http://your-jenkins/newJoby use la opción "Copiar trabajo existente". Ingrese el nombre del trabajo existente: Jenkins verificará si existe.

La pestaña predeterminada en la página principal de Jenkins debería enumerar todos los trabajos existentes, pero tal vez su predecesor eliminó la pestaña. Puede crear una nueva pestaña que enumere todos los trabajos dehttp://your-jenkins/newView.

gareth_bowles
fuente
tenga en cuenta que al copiar el trabajo existente, debe proporcionar el nombre (no codificado como en la URL al acceder al trabajo), por lo que si el nombre del trabajo tiene espacios, se conservarán. En breve, ponga solo el nombre original del trabajo, nada más.
Yauhen
Con el complemento ez-template instalado, "Copiar trabajo existente" aplicado a una plantilla o a un trabajo usando una plantilla crea un nuevo trabajo dependiente de la plantilla. Si realmente desea una copia independiente, puede eliminar la Use another job as a templateconfiguración.
user598656
146

Puedes clonar un trabajo:

  1. Haga clic en el enlace 'Nuevo elemento'
  2. Dale un nuevo nombre a tu trabajo
  3. Seleccione el botón de opción 'Copiar elemento existente'
  4. Indique el nombre del trabajo que desea clonar
  5. Haga clic en Aceptar'

Finalmente, tiene su nuevo trabajo, que refleja todas las características de su clonado.

prudviraj
fuente
117

Jenkins 2.9

  1. Jenkins> Nuevo artículo

    Jenkins New Item

  2. Ingrese el nombre de un elemento , por ejemplo, "MY_CLONE"

    Ingrese un nombre de elemento

  3. Especifique el trabajo de origen ( Copiar de )> Aceptar

    Cuando comience a escribir el nombre, se encontrarán los valores existentes. Tenga en cuenta que esto distingue entre mayúsculas y minúsculas.

    Copiar desde OK

  4. Haga clic en Guardar si desea mantener los valores predeterminados.

  5. Ahora ambos trabajos están disponibles en la misma ubicación:

    Ver trabajos

RUMANIA_ingeniero
fuente
3
Las imágenes valen más que mil palabras. No pude encontrar el pequeño menú desplegable para la vida de mí. Mulțumiri
michaelok
34

New Item> Project Name= abc> En lugar de Freestyle job, seleccioneCopy from job name of already existing jobs

Si está dentro de la carpeta que desea copiar del directorio, use ../.

ksr
fuente
Gracias por mencionar../
Satevg
14

si desea copiar en el mismo Jenkins pero en diferentes subcarpetas, cree un nuevo elemento -> use copy from. El nuevo trabajo será clonado en el mismo directorio. Luego use la opción mover para moverlo en el directorio deseado

Ulka
fuente
Esto es lo que usé. Simplemente copiar en la misma carpeta a menudo no es suficiente. ¡Gracias!
donmartin
11

Todas las respuestas anteriores son buenas. Pero si ha creado "carpetas" para sus trabajos, las cosas son ligeramente diferentes.

Haga clic en la carpeta en la que desea crear un nuevo trabajo. Luego haga clic en "Nuevo elemento" en el menú de la izquierda. Ahora su URL de "nuevo trabajo" se verá así (suponiendo que esté creando el nuevo trabajo en "mi carpeta"):

http://my-jenkins:8080/job/my-folder/newJob

Debajo Enter an item name, ingrese su nuevo nombre de trabajo deseado. Luego use el Copy fromcuadro de texto en la parte inferior. Introduzca la ruta de trabajo del trabajo de origen.

Por ejemplo, si su trabajo de origen está debajo de la carpeta src-foldery el nombre del trabajo está src-job, deberá ingresar src-folder/src-joben el cuadro "Copiar de".

Espero eso ayude.

Bhushan
fuente
Todavía estoy tratando de encontrar una forma de copiar trabajos entre estructuras de carpetas: Jenkins agrega el "trabajo" literal para cada nuevo elemento que es una carpeta, por ejemplo, tengo un trabajo en localhost: 8080 / job / x / job / y / job_1 , donde x e y son carpetas. job_1 es el trabajo real. ¿Cómo puedo copiar este trabajo a localhost: 8080 / job / x / job / z / job_1 ? Intenté toda referencia al trabajo de origen sin suerte.
Heinz
1
Ir a localhost:8080/job/x/job/y/job_1. En esa página, deberías ver Full project name. Intente usar eso cuando especifique la fuente.
Bhushan
Si usted tiene 2 carpetas folder1y folder2en el mismo nivel y que desea copiar folder1\job1a folder2\job1, se puede crear un nuevo elemento en la carpeta folder2y luego usar ..para volver en la estructura de carpetas y copiar ../folder1/job1.
DRz
10

También puede usar el complemento Copiar enlace de proyecto .

Esto agregará un enlace en el panel lateral izquierdo de su proyecto:

ingrese la descripción de la imagen aquí

La siguiente pantalla le pedirá el nuevo nombre del trabajo:

ingrese la descripción de la imagen aquí

lkisac
fuente
10

En mi caso, tuve que copiar un trabajo de una instancia de jenkins a otra.

Así que primero busqué bajo la estructura de directorios del antiguo Jenkins (el trabajo / nombre del directorio; también noté el config.xml) y luego bajo la estructura de directorios del nuevo jenkins donde luego creé un directorio con el mismo nombre / trabajo y lo copié el config.xml debajo de este directorio recién creado.

Luego, en "Administrar Jenkins", presioné "Recargar configuración desde el disco". Eso es.

Rohit Kataria
fuente
gracias por la sugerencia "Recargar configuración desde disco".
Aliza
1
Sí, haciendo esto cuando tengo que copiar en masa varios elementos, antes de "Recargar desde el disco" también puede hacer algo de magia manual requerida en la CLI, como buscar / reemplazar algunos parámetros, fragmentos de texto, etc. en config.xml . Tenga en cuenta que el nombre del directorio donde se encuentra config.xml es el nombre de su trabajo (por lo tanto, si a diferencia de Rohit necesita crear un nuevo trabajo, simplemente asígnele un nombre diferente).
RAM237
En mi opinión, cuando tienes varios niveles de carpetas con muchos trabajos dentro, esta es la mejor opción.
cabreracanal
3

Cree un nuevo elemento y vaya a la última opción que encontrará para copiar desde el existente, simplemente escriba su nombre de trabajo actual y tendrá un clon de ese proyecto para trabajar.

yug
fuente
1

No pude copiar el trabajo de Jenkins de la subcarpeta. copy fromla opción no mostraba la sugerencia que estaba buscando. Sin usar la sugerencia, copiar el nombre del trabajo no funcionó.

Entonces, si desea crear un trabajo desde una carpeta externa, primero debe crear el trabajo en una subcarpeta y luego moverlo a una carpeta diferente donde necesite colocarlo.

priyanka_rao
fuente
0

Todas las respuestas aquí son muy útiles, pero se pierde un error muy extraño sobre Jenkins. Después de editar las nuevas configuraciones de trabajo, a veces si su nivel de zoom es demasiado alto, es posible que no vea la opción del botón saveo apply. El botón está presente en la página y oculto por su nivel de zoom, debe alejarse hasta que vea el botón en la parte inferior izquierda de su página.

¡Extraño, lo sé!

avp
fuente