Come posso clonare un lavoro in Jenkins?


231

Jenkinsdispone del Gerritplug-in in modo che quando eseguiamo i check-in Gerrit, eseguiamo Jenkinsuna build e, se ha esito positivo, Gerritviene verificata la modifica . Se la compilazione fallisce, non lo è. La mia comprensione è che ciò viene realizzato attraverso lavori creati in Jenkins. Ora abbiamo creato un nuovo ramo ( git) e suppongo di dover clonare i lavori esistenti che puntano all'altro ramo in modo che si verifichi lo stesso flusso di lavoro e le build vengano eseguite su ogni commit. Qualcuno può spiegare come avrei clonato questi lavori? Non mi sembra di vedere un modo per farlo attraverso l'interfaccia utente, né posso vedere un modo per elencare i lavori attraverso l'interfaccia utente.


7
Dovresti essere in grado di "Copia lavoro esistente" come una delle opzioni nella pagina Nuovo lavoro. Vedere stackoverflow.com/questions/3133537/...
nofinator

Risposte:


180

Per copiare un lavoro esistente, vai a http://your-jenkins/newJobe usa l'opzione "Copia lavoro esistente". Immettere il nome del lavoro esistente: Jenkins verificherà se esiste.

La scheda predefinita sulla prima pagina di Jenkins dovrebbe elencare tutti i lavori esistenti, ma forse il tuo predecessore ha eliminato la scheda. È possibile creare una nuova scheda che elenca tutti i lavori dahttp://your-jenkins/newView.


attenzione, che durante la copia del lavoro esistente, è necessario fornire il nome (non codificato come nell'URL durante l'accesso al lavoro), quindi se il nome del lavoro ha spazi, verranno conservati. In breve, metti solo il nome originale del lavoro, nient'altro.
Yauhen,

Con il plug-in ez-template installato "Copia lavoro esistente" applicato a un modello o a un lavoro usando un modello crea un nuovo lavoro dipendente dal modello. Se desideri effettivamente una copia indipendente, puoi eliminare la Use another job as a templateconfigurazione.
user598656

146

Puoi clonare un lavoro:

  1. Fai clic sul link "Nuovo elemento"
  2. Dai un nuovo nome al tuo lavoro
  3. Seleziona il pulsante di opzione "Copia elemento esistente"
  4. Assegna il nome del lavoro che desideri clonare
  5. Fai clic su "OK"

Infine, hai il tuo nuovo lavoro, che riflette tutte le caratteristiche del tuo clonato.


117

Jenkins 2.9

  1. Jenkins> Nuovo oggetto

    Nuovo oggetto Jenkins

  2. Inserisci il nome di un elemento , ad esempio "MY_CLONE"

    Inserisci un nome per l'elemento

  3. Specificare il lavoro di origine ( Copia da )> OK

    Quando inizi a digitare il nome, verranno trovati i valori esistenti. Si noti che questo è case sensitive.

    Copia da OK

  4. Fare clic su Salva se si desidera mantenere i valori predefiniti.

  5. Ora entrambi i lavori sono disponibili nella stessa posizione:

    Visualizza lavori


3
Le immagini valgono più di mille parole. Impossibile trovare il piccolo menu a discesa per la mia vita. Mulțumiri
michaelok,

34

New Item> Project Name= abc> Invece di Freestyle job, selezionareCopy from job name of already existing jobs

Se ci si trova all'interno della cartella che si desidera copiare dalla directory, utilizzare ../.


Grazie per la menzione../
Satevg

14

se vuoi copiare nello stesso Jenkins ma in diverse sottocartelle, crea un nuovo elemento -> usa copia da. il nuovo lavoro verrà clonato nella stessa directory. Quindi utilizzare l'opzione di spostamento per spostarlo nella directory desiderata


Questo è quello che ho usato. Copiare semplicemente nella stessa cartella spesso non è sufficiente. Grazie!
donmartin,

11

Tutte le risposte sopra sono buone. Ma se hai creato "cartelle" per i tuoi lavori, le cose sono leggermente diverse.

Fare clic sulla cartella in cui si desidera creare un nuovo lavoro. Quindi fai clic su "Nuovo elemento" nel menu a sinistra. Ora il tuo URL "nuovo lavoro" sarà simile a questo (supponendo che tu stia creando il nuovo lavoro in "mia-cartella"):

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

Sotto Enter an item name, inserisci il nome del nuovo lavoro desiderato. Quindi utilizzare la Copy fromcasella di testo in basso. Immettere il percorso del lavoro di origine.

Ad esempio, se il lavoro di origine si trova nella cartella src-foldere il nome del lavoro è src-job, sarà necessario immettere src-folder/src-jobnella casella "Copia da".

Spero che sia d'aiuto.


Sto ancora cercando di trovare un modo per copiare i lavori tra le strutture delle cartelle: Jenkins aggiunge il letterale "lavoro" per ogni nuovo elemento che è una cartella, ad esempio ho un lavoro su localhost: 8080 / lavoro / x / lavoro / y / lavoro_1 , dove xey sono cartelle. job_1 è il vero lavoro. Come posso copiare questo lavoro su localhost: 8080 / job / x / job / z / job_1 ? Ho provato tutti i riferimenti al lavoro di origine senza fortuna.
Heinz,

1
Vai a localhost:8080/job/x/job/y/job_1. In quella pagina, dovresti vedere Full project name. Prova a usarlo quando specifichi la fonte.
Bhushan,

Se si dispone di 2 cartelle folder1e folder2allo stesso livello e si desidera copiare folder1\job1a folder2\job1, è possibile creare un nuovo elemento nella cartella folder2e quindi utilizzare ..per tornare nella struttura di cartelle e copiare ../folder1/job1.
DRz,

10

Puoi anche utilizzare il plug-in Copia progetto link .

Ciò aggiungerà un collegamento sul pannello laterale sinistro del progetto:

inserisci qui la descrizione dell'immagine

La seguente schermata chiederà il nuovo nome del lavoro:

inserisci qui la descrizione dell'immagine


10

Nel mio caso, ho dovuto copiare un lavoro da un'istanza di jenkins a un'altra.

Quindi prima ho guardato sotto la struttura di directory del vecchio Jenkins (il nome lavoro / directory; ho anche notato config.xml) e poi sotto la struttura di directory del nuovo jenkins dove ho quindi creato una directory con lo stesso nome / lavoro e copiata config.xml in questa directory appena creata.

Quindi, in "Gestisci Jenkins", ho premuto "Ricarica configurazione da disco". Questo è tutto.


grazie per il suggerimento "Ricarica configurazione da disco"!
Aliza,

1
Sì, facendo così quando devo copiare in blocco diversi elementi, prima di "Ricaricare dal disco" puoi anche fare un po 'di magia manuale richiesta nella CLI come cercare / sostituire alcuni parametri, parti di testo, ecc . In config.xml . Nota che il nome della directory in cui si trova config.xml è il nome del tuo lavoro (quindi, se a differenza di Rohit devi creare un nuovo lavoro, assegnagli un nome diverso).
RAM237,

Secondo me, quando hai diversi livelli di cartelle con molti lavori all'interno, questa è l'opzione migliore.
cabreracanal,

3

Crea un nuovo oggetto e vai all'ultimo, troverai l'opzione per copiare da quelli esistenti, basta scrivere il nome del tuo lavoro attuale e avrai il clone di quel progetto con cui lavorare.


1

Non sono stato in grado di copiare il lavoro Jenkins dalla sottocartella. copy fromL'opzione non ha mostrato il suggerimento che stavo cercando. Senza usare il suggerimento, la copia del nome del lavoro non ha funzionato.

Quindi, se si desidera creare un lavoro dalla cartella esterna, è necessario prima creare il lavoro nella sottocartella e quindi spostarlo in una cartella diversa in cui è necessario posizionarlo.



0

Tutte le risposte qui sono super utili ma manca un bug molto strano su Jenkins. Dopo aver modificato le nuove configurazioni del lavoro, a volte se il livello di zoom è troppo alto, è possibile che non venga visualizzata l' opzione del pulsante saveo apply. Il pulsante è presente sulla pagina e nascosto dal tuo livello di zoom, devi rimpicciolire fino a quando non vedi il pulsante in basso a sinistra della pagina.

Strano, lo so!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.