Jak sklonować pracę w Jenkins?

231

Jenkinsma Gerritwtyczkę na swoim miejscu, więc kiedy dokonujemy zameldowania Gerrit, Jenkinswykonuje kompilację, a jeśli się powiedzie, Gerritweryfikowana jest modyfikacja . Jeśli kompilacja się nie powiedzie, nie jest. Rozumiem, że osiąga się to poprzez zadania utworzone w Jenkins. Utworzyliśmy teraz nową gałąź ( git) i myślę, że muszę sklonować istniejące zadania wskazujące na drugą gałąź, aby ten sam przepływ pracy miał miejsce i kompilacje są wykonywane przy każdym zatwierdzeniu. Czy ktoś może wyjaśnić, jak sklonowałbym te prace? Wydaje mi się, że nie widzę sposobu, aby to zrobić za pomocą interfejsu użytkownika, ani nawet nie widzę sposobu, aby wyświetlić listę zadań za pośrednictwem interfejsu użytkownika.

GregH
źródło
7
Powinieneś być w stanie „Skopiować istniejące zadanie” jako jedną z opcji na stronie Nowe zadanie. Zobacz stackoverflow.com/questions/3133537/…
nofinator

Odpowiedzi:

180

Aby skopiować istniejące zadanie, przejdź do http://your-jenkins/newJobi skorzystaj z opcji „Kopiuj istniejące zadanie”. Wprowadź nazwę istniejącego zadania - Jenkins sprawdzi, czy istnieje.

Domyślna karta na pierwszej stronie Jenkins powinna zawierać listę wszystkich istniejących zadań, ale być może poprzednik ją usunął. Możesz utworzyć nową kartę z listą wszystkich zleceń zhttp://your-jenkins/newView.

gareth_bowles
źródło
pamiętaj, że podczas kopiowania istniejącego zadania musisz podać nazwę (nie zakodowaną jak w adresie URL podczas uzyskiwania dostępu do zadania), więc jeśli nazwa zadania ma spacje, zostaną zachowane. Wkrótce umieść tylko oryginalną nazwę pracy, nic więcej.
Yauhen
Po zainstalowaniu wtyczki ez-template „Kopiuj istniejące zadanie” zastosowane do szablonu lub do zadania za pomocą szablonu tworzy nowe zadanie zależne od szablonu. Jeśli naprawdę potrzebujesz niezależnej kopii, możesz usunąć Use another job as a templatekonfigurację.
user598656
146

Możesz sklonować pracę:

  1. Kliknij link „Nowy element”
  2. Nadaj nową nazwę swojej pracy
  3. Wybierz przycisk opcji „Kopiuj istniejący element”
  4. Podaj nazwę zadania, które chcesz sklonować
  5. Kliknij OK'

Wreszcie masz nową pracę, która odzwierciedla wszystkie funkcje sklonowanej.

prudviraj
źródło
117

Jenkins 2.9

  1. Jenkins> Nowy przedmiot

    Jenkins New Item

  2. Wprowadź nazwę elementu - np. „MY_CLONE”

    Wpisz nazwę elementu

  3. Określ zadanie źródłowe ( Kopiuj z )> OK

    Gdy zaczniesz wpisywać nazwę, zostaną znalezione istniejące wartości. Zauważ, że wielkość liter ma znaczenie.

    Skopiuj z OK

  4. Kliknij Zapisz, jeśli chcesz zachować wartości domyślne.

  5. Teraz oba zadania są dostępne w tej samej lokalizacji:

    Wyświetl oferty pracy

ROMANIA_inżynier
źródło
3
Zdjęcia są warte tysiąca słów. Nie mogłem znaleźć małego menu rozwijanego dla mojego życia. Mulțumiri
michaelok
34

New Item> Project Name= abc> Zamiast Freestyle job, wybierzCopy from job name of already existing jobs

Jeśli znajdujesz się w folderze, który chcesz skopiować z katalogu, użyj ../.

ksr
źródło
Dzięki za wzmiankę../
Satevg
14

jeśli chcesz skopiować w tym samym Jenkinsie, ale w różnych podfolderach, utwórz nowy element -> użyj kopiuj z. nowe zadanie zostanie sklonowane w tym samym katalogu. Następnie użyj opcji przenoszenia, aby przenieść go do żądanego katalogu

Ulka
źródło
Tego właśnie użyłem. Samo skopiowanie do tego samego folderu często nie wystarcza. Dzięki!
donmartin,
11

Wszystkie powyższe odpowiedzi są dobre. Ale jeśli utworzyłeś „foldery” dla swoich zadań, sprawy wyglądają nieco inaczej.

Kliknij folder, w którym chcesz utworzyć nowe zadanie. Następnie kliknij „Nowy element” w menu po lewej stronie. Teraz Twój adres URL „nowej pracy” będzie wyglądał tak (zakładając, że tworzysz nową pracę w „moim folderze”):

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

Pod Enter an item namewprowadź żądaną nową nazwę pracy. Następnie użyj pola Copy fromtekstowego u dołu. Wprowadź ścieżkę zadania źródłowego.

Np. Jeśli twoje zadanie źródłowe znajduje się w folderze, src-foldera nazwa zadania to src-job, musisz wpisać src-folder/src-jobw polu „Kopiuj z”.

Mam nadzieję, że to pomoże.

Bhushan
źródło
Wciąż próbuję znaleźć sposób na skopiowanie zleceń między strukturami folderów: Jenkins dodaje dosłowne „zlecenie” dla każdego nowego elementu, który jest folderem, np. Mam zlecenie na localhost: 8080 / job / x / job / y / job_1 , gdzie xiy są folderami. job_1 to prawdziwa praca. Jak mogę skopiować to zadanie do localhost: 8080 / job / x / job / z / job_1 ? Próbowałem wszystkich odniesień do zadania źródłowego bez powodzenia.
Heinz,
1
Idź do localhost:8080/job/x/job/y/job_1. Na tej stronie powinieneś zobaczyć Full project name. Spróbuj użyć tego, gdy określisz źródło.
Bhushan,
Jeśli masz 2 foldery folder1i folder2na tym samym poziomie i chcesz skopiować folder1\job1do folder2\job1, można utworzyć nowy element do folderu folder2, a następnie użyć .., aby cofnąć się w strukturze folderów i kopiowania ../folder1/job1.
DRz
10

Możesz także użyć wtyczki Kopiuj link do projektu .

Spowoduje to dodanie linku na lewym panelu twojego projektu:

wprowadź opis zdjęcia tutaj

Poniższy ekran zapyta o nową nazwę zadania:

wprowadź opis zdjęcia tutaj

lkisac
źródło
10

W moim przypadku musiałem skopiować zadanie z jednej instancji Jenkins do drugiej.

Najpierw zajrzałem do struktury katalogów starego Jenkinsa (nazwa zadania / katalogu; zanotowałem także config.xml), a następnie do struktury katalogów nowych Jenkinsów, gdzie utworzyłem katalog o tej samej nazwie / zadaniu i skopiowałem plik config.xml w tym nowo utworzonym katalogu.

Następnie pod „Manage Jenkins” nacisnąłem „Reload Configuration from Disk”. Otóż ​​to.

Rohit Kataria
źródło
dzięki za wskazówkę „Przeładuj konfigurację z dysku”!
Aliza
1
Tak, robiąc to w ten sposób, gdy muszę zbiorczo skopiować kilka elementów, przed „Przeładowaniem z dysku” możesz także wykonać kilka wymaganych ręcznych czynności magicznych w CLI, takich jak wyszukiwanie / zamiana niektórych parametrów, fragmentów tekstu itp. W config.xml . Zauważ, że nazwa katalogu, w którym znajduje się config.xml, to nazwa twojego zadania (dlatego jeśli w przeciwieństwie do Rohit musisz utworzyć nowe zadanie, po prostu nadaj mu inną nazwę).
RAM237,
Moim zdaniem, jeśli masz kilka poziomów folderów z wieloma zadaniami, jest to najlepsza opcja.
cabreracanal
3

Utwórz nowy przedmiot i przejdź do ostatniej, którą znajdziesz opcję kopiowania z istniejącej, po prostu napisz swoją bieżącą nazwę zadania, a będziesz miał klon tego projektu do pracy.

jug
źródło
1

Nie mogłem skopiować zadania Jenkinsa z podfolderu. copy fromopcja nie wyświetlała sugestii, której szukałem. Bez użycia sugestii kopiowanie nazwy zadania nie działało.

Jeśli więc chcesz utworzyć zadanie z zewnętrznego folderu, musisz najpierw utworzyć zadanie w podfolderze, a następnie przenieść je do innego folderu, w którym chcesz je umieścić.

priyanka_rao
źródło
0

Wszystkie odpowiedzi tutaj są bardzo pomocne, ale brakuje jednego bardzo dziwnego błędu dotyczącego Jenkinsa. Po edytowaniu nowych konfiguracji zadań, czasami jeśli poziom powiększenia jest zbyt wysoki, możesz nie zobaczyć opcji przycisku savelub apply. Przycisk jest obecny na stronie i ukryty przez poziom powiększenia, musisz pomniejszać, aż zobaczysz przycisk w lewym dolnym rogu strony.

Dziwne, wiem!

śr
źródło