Como clonar um emprego na Jenkins?

231

Jenkinstem o Gerritplug - in no lugar para que, quando fizermos check-ins Gerrit, Jenkinsexecute uma compilação e, se for bem-sucedido, a modificação Gerritseja verificada. Se a construção falhar, não será. Meu entendimento é que isso é realizado por meio de trabalhos criados no Jenkins. Agora criamos uma nova ramificação ( git) e acho que preciso clonar as tarefas existentes apontando para a outra ramificação, para que esse mesmo fluxo de trabalho ocorra e as compilações sejam executadas em cada confirmação. Alguém pode explicar como eu clonaria esses trabalhos? Parece que não vejo uma maneira de fazer isso por meio da interface do usuário nem consigo listar os trabalhos por meio da interface do usuário.

GregH
fonte
7
Você deve conseguir "Copiar trabalho existente" como uma das opções na página Novo trabalho. Veja stackoverflow.com/questions/3133537/…
nofinator

Respostas:

180

Para copiar um trabalho existente, vá para http://your-jenkins/newJobe use a opção "Copiar trabalho existente". Digite o nome do trabalho existente - o Jenkins verificará se ele existe.

A guia padrão na primeira página do Jenkins deve listar todos os trabalhos existentes, mas talvez o seu antecessor tenha excluído a guia. Você pode criar uma nova guia listando todos os trabalhos dehttp://your-jenkins/newView.

gareth_bowles
fonte
cuidado ao copiar o trabalho existente, você precisa fornecer o nome (não codificado como na URL ao acessar o trabalho); portanto, se o nome do trabalho tiver espaços, eles serão preservados. Em breve, coloque apenas o nome original do trabalho, nada mais.
precisa saber é o seguinte
Com o plug-in ez-template instalado, "Copiar trabalho existente" aplicado a um modelo ou a um trabalho usando um modelo cria um novo trabalho dependente do modelo. Se você realmente deseja uma cópia independente, pode excluir a Use another job as a templateconfiguração.
user598656
146

Você pode clonar um trabalho:

  1. Clique no link 'Novo item'
  2. Dê um novo nome para o seu trabalho
  3. Selecione o botão de opção 'Copiar item existente'
  4. Dê o nome do trabalho que você deseja clonar
  5. Clique OK'

Finalmente, você tem seu novo trabalho, que reflete todos os recursos do seu clonado.

prudviraj
fonte
117

Jenkins 2.9

  1. Jenkins> Novo item

    Jenkins New Item

  2. Digite o nome do item - por exemplo, "MY_CLONE"

    Digite o nome do item

  3. Especifique o trabalho de origem ( Copiar de )> OK

    Quando você começa a digitar o nome, os valores existentes serão encontrados. Observe que isso diferencia maiúsculas de minúsculas.

    Copiar de OK

  4. Clique em Salvar se desejar manter os valores padrão.

  5. Agora os dois trabalhos estão disponíveis no mesmo local:

    Visualizar trabalhos

ROMANIA_engineer
fonte
3
Imagens valem mais que mil palavras. Não foi possível encontrar o pequeno menu suspenso para a minha vida. Mulţumiri
michaelok
34

New Item> Project Name= abc> Em vez de Freestyle job, selecioneCopy from job name of already existing jobs

Se você estiver dentro da pasta que deseja copiar para fora do diretório, use ../.

ksr
fonte
Obrigado por mencionar../
Satevg
14

se você deseja copiar no mesmo Jenkins, mas em subpastas diferentes, crie um novo item -> use copy from. novo trabalho será clonado no mesmo diretório. Em seguida, use a opção Mover para movê-lo no diretório desejado

Ulka
fonte
Isto é o que eu usei. Apenas copiar para a mesma pasta geralmente não é suficiente. Obrigado!
donmartin
11

Todas as respostas acima são boas. Mas se você criou "pastas" para seus trabalhos, as coisas são um pouco diferentes.

Clique na pasta na qual você deseja criar um novo trabalho. Em seguida, clique em "Novo item" no menu esquerdo. Agora, o URL do seu "novo trabalho" ficará assim (supondo que você esteja criando o novo trabalho em "minha pasta"):

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

Em Enter an item name, digite o novo nome de trabalho desejado. Em seguida, use a Copy fromcaixa de texto na parte inferior. Digite o caminho do trabalho de origem.

Por exemplo, se o trabalho de origem estiver na pasta src-foldere o nome do trabalho estiver src-job, você deverá digitar src-folder/src-jobna caixa "Copiar de".

Espero que ajude.

Bhushan
fonte
Ainda estou tentando encontrar uma maneira de copiar trabalhos entre estruturas de pastas: o Jenkins adiciona o "trabalho" literal para cada novo item que é uma pasta, por exemplo, eu tenho um trabalho no localhost: 8080 / job / x / job / y / job_1 , onde x e y são pastas. job_1 é o trabalho real. Como posso copiar este trabalho para o host local: 8080 / job / x / job / z / job_1 ? Tentei todas as referências ao trabalho de origem sem sorte.
Heinz
1
Vá para localhost:8080/job/x/job/y/job_1. Nessa página, você deve ver Full project name. Tente usar isso quando especificar a fonte.
Bhushan
Se você tem 2 pastas folder1e folder2, ao mesmo nível e que você deseja copiar folder1\job1para folder2\job1, você pode criar um novo item para a pasta folder2e, em seguida, usar ..para voltar na estrutura da pasta e da cópia ../folder1/job1.
DR15
10

Você também pode usar o plug-in Copiar link do projeto .

Isso adicionará um link no painel esquerdo do seu projeto:

insira a descrição da imagem aqui

A tela a seguir solicitará o novo nome do trabalho:

insira a descrição da imagem aqui

lkisac
fonte
10

No meu caso, tive que copiar um trabalho de uma instância de jenkins para outra.

Então, primeiro, olhei sob a estrutura de diretórios do Jenkins antigo (o nome do trabalho / diretório; também anotou o config.xml) e, em seguida, sob a estrutura de diretórios do novo Jenkins, onde criei um diretório com o mesmo nome / trabalho e copiei o config.xml sob este diretório recém-criado.

Em "Gerenciar Jenkins", clique em "Recarregar configuração do disco". É isso aí.

Rohit Kataria
fonte
obrigado pela dica "Recarregar configuração do disco"!
Aliza 14/02
1
Sim, fazendo assim quando eu tiver que copiar vários itens em massa. Antes de "Recarregar do disco", você também pode fazer algumas mágicas manuais necessárias na CLI, como pesquisar / substituir alguns parâmetros, partes de texto etc. no config.xml . Observe que o nome do diretório em que o config.xml está localizado é o nome do seu trabalho (portanto, se diferentemente do Rohit, você precisar criar um novo trabalho, forneça um nome diferente).
RAM237
Na minha opinião, quando você tem vários níveis de pastas com muitos trabalhos dentro, esta é a melhor opção.
Cabreracanal
3

Crie um novo item e vá até a última opção que você encontrará para copiar, basta escrever o nome do seu trabalho atual e você terá um clone desse projeto para trabalhar.

yug
fonte
1

Não pude copiar o trabalho de Jenkins da subpasta. copy fromA opção não mostrou a sugestão que eu estava procurando. Sem usar a sugestão de copiar o nome do trabalho, não funcionou.

Portanto, se você deseja criar um trabalho a partir da pasta externa, é necessário primeiro criar o trabalho na subpasta e movê-lo para uma pasta diferente na qual você deve colocá-lo.

priyanka_rao
fonte
0

Todas as respostas aqui são super úteis, mas faltam um bug muito estranho sobre Jenkins. Depois de editar as novas configurações de trabalho, às vezes, se o nível de zoom estiver muito alto, talvez você não veja a opção saveou applybotão. O botão está presente na página e oculto pelo seu nível de zoom, você deve diminuir o zoom até ver o botão na parte inferior esquerda da página.

Estranho, eu sei!

avp
fonte