Bagaimana cara mengkloning pekerjaan di Jenkins?

231

Jenkinsmemiliki GerritPlugin sehingga ketika kami melakukan check-in Gerrit, Jenkinsmelakukan build dan jika berhasil, maka modifikasi dalam Gerritdiverifikasi. Jika build gagal maka tidak. Pemahaman saya adalah bahwa ini dicapai melalui pekerjaan yang diatur di Jenkins. Kami sekarang telah membuat cabang baru ( git) dan saya kira saya harus mengkloning pekerjaan yang ada menunjuk ke cabang lain sehingga alur kerja yang sama ini terjadi dan membangun dilakukan pada setiap komit. Adakah yang bisa menjelaskan bagaimana saya akan mengkloning pekerjaan ini? Saya sepertinya tidak melihat cara untuk melakukannya melalui UI atau bahkan saya tidak bisa melihat cara untuk mendaftar pekerjaan melalui UI.

Greg
sumber
7
Anda harus dapat "Menyalin Pekerjaan yang Ada" sebagai salah satu opsi di halaman Pekerjaan Baru. Lihat stackoverflow.com/questions/3133537/...
nofinator

Jawaban:

180

Untuk menyalin pekerjaan yang ada, buka http://your-jenkins/newJobdan gunakan opsi "Salin pekerjaan yang ada". Masukkan nama pekerjaan yang ada - Jenkins akan memverifikasi apakah itu ada.

Tab default di halaman depan Jenkins harus mencantumkan semua pekerjaan yang ada, tetapi mungkin pendahulu Anda menghapus tab. Anda dapat membuat tab baru yang mencantumkan semua pekerjaan darihttp://your-jenkins/newView.

gareth_bowles
sumber
berhati-hatilah, bahwa saat menyalin pekerjaan yang ada, Anda harus memberikan nama (tidak dikodekan seperti dalam url saat mengakses pekerjaan), jadi jika nama pekerjaan memiliki spasi, mereka akan dipertahankan. Singkatnya, cantumkan hanya nama asli dari pekerjaan itu, tidak ada yang lain.
Yauhen
Dengan plugin ez-templat terinstal "Salin pekerjaan yang ada" diterapkan ke templat atau ke pekerjaan menggunakan templat membuat pekerjaan baru bergantung pada templat. Jika Anda benar-benar menginginkan salinan independen, Anda dapat menghapus Use another job as a templatekonfigurasi.
user598656
146

Anda dapat mengkloning pekerjaan:

  1. Klik tautan 'Item Baru'
  2. Berikan nama baru untuk pekerjaan Anda
  3. Pilih tombol radio 'Salin Item yang ada'
  4. Beri nama pekerjaan yang ingin Anda tiru
  5. Klik 'OK'

Akhirnya, Anda memiliki pekerjaan baru Anda, yang mencerminkan semua fitur yang dikloning.

prudviraj
sumber
117

Jenkins 2.9

  1. Jenkins> Item Baru

    Jenkins Item Baru

  2. Masukkan nama item - Misalnya "MY_CLONE"

    Masukkan nama item

  3. Tentukan pekerjaan sumber ( Salin dari )> OK

    Saat Anda mulai mengetik nama, nilai yang ada akan ditemukan. Perhatikan bahwa ini peka terhadap huruf besar-kecil.

    Salin dari OK

  4. Klik Simpan jika Anda ingin mempertahankan nilai default.

  5. Sekarang kedua pekerjaan tersedia di lokasi yang sama:

    Lihat pekerjaan

ROMANIA_engineer
sumber
3
Gambar bernilai seribu kata. Tidak dapat menemukan dropdown kecil untuk kehidupan saya. Mulțumiri
michaelok
34

New Item> Project Name= abc> Alih-alih Freestyle job, pilihCopy from job name of already existing jobs

Jika Anda berada di dalam folder yang ingin Anda salin dari direktori kemudian gunakan ../.

kr
sumber
Terima kasih telah menyebutkan../
Satevg
14

jika Anda ingin menyalin dalam Jenkins yang sama tetapi dalam subfolder yang berbeda, buat item baru -> gunakan salinan dari. Pekerjaan baru akan dikloning di direktori yang sama. Kemudian gunakan opsi pindahkan untuk memindahkannya di direktori yang diinginkan

Ulka
sumber
Inilah yang saya gunakan. Menyalin ke folder yang sama seringkali tidak cukup. Terima kasih!
donmartin
11

Semua jawaban di atas baik. Tetapi jika Anda telah membuat "folder" untuk pekerjaan Anda, segalanya akan sedikit berbeda.

Klik pada folder di mana Anda ingin membuat pekerjaan baru. Kemudian klik "Item Baru" pada menu sebelah kiri. Sekarang URL "pekerjaan baru" Anda akan terlihat seperti ini (dengan asumsi Anda membuat pekerjaan baru di bawah "folder saya"):

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

Di bawah Enter an item name, masukkan nama pekerjaan baru yang Anda inginkan. Kemudian gunakan Copy fromkotak teks di bagian bawah. Masukkan jalur pekerjaan pekerjaan sumbernya.

Misalnya Jika pekerjaan sumber Anda berada di bawah folder src-folderdan nama pekerjaan itu src-job, Anda harus memasukkan src-folder/src-jobdalam kotak "Salin dari".

Semoga ini bisa membantu.

Bhushan
sumber
Saya masih berusaha menemukan cara untuk menyalin pekerjaan lintas struktur folder: Jenkins menambahkan "pekerjaan" literal untuk setiap item baru yang merupakan folder, misalnya saya memiliki pekerjaan di localhost: 8080 / job / x / job / y / job_1 , di mana x dan y adalah folder. job_1 adalah pekerjaan nyata. Bagaimana saya bisa menyalin pekerjaan ini ke localhost: 8080 / job / x / job / z / job_1 ? Saya mencoba semua referensi ke sumber pekerjaan tanpa hasil.
Heinz
1
Pergi ke localhost:8080/job/x/job/y/job_1. Di halaman itu, Anda akan melihat Full project name. Coba gunakan itu ketika Anda menentukan sumbernya.
Bhushan
Jika Anda memiliki 2 folder folder1dan folder2pada tingkat yang sama dan Anda ingin menyalin folder1\job1ke folder2\job1, Anda dapat membuat item baru ke dalam folder folder2dan kemudian menggunakan ..kembali dalam struktur folder dan copy ../folder1/job1.
DRz
10

Anda juga dapat menggunakan plugin Salin proyek tautan .

Ini akan menambahkan tautan di panel sebelah kiri proyek Anda:

masukkan deskripsi gambar di sini

Layar berikut akan menanyakan nama Pekerjaan baru:

masukkan deskripsi gambar di sini

lkisac
sumber
10

Dalam kasus saya, saya harus menyalin pekerjaan dari satu instance jenkins ke yang lain.

Jadi pertama saya melihat di bawah struktur direktori Jenkins lama (nama pekerjaan / direktori; juga mencatat config.xml) dan kemudian di bawah struktur direktori jenkins baru di mana saya kemudian membuat direktori dengan nama / pekerjaan yang sama dan disalin config.xml di bawah dir ini baru dibuat.

Kemudian di bawah, "Kelola Jenkins", saya menekan "Reload Configuration from Disk". Itu dia.

Rohit Kataria
sumber
terima kasih untuk tip "Reload Configuration from Disk"!
Aliza
1
Ya, melakukan seperti ini ketika saya harus menyalin beberapa item secara massal, sebelum "Reload dari Disk" Anda juga dapat melakukan beberapa sihir manual yang diperlukan dalam CLI seperti mencari / mengganti beberapa parameter, potongan teks, dll di config.xml . Perhatikan bahwa nama direktori tempat config.xml berada adalah nama Pekerjaan Anda (jadi, jika tidak seperti Rohit Anda perlu membuat Pekerjaan baru, berikan saja nama yang berbeda).
RAM237
Menurut pendapat saya, ketika Anda memiliki beberapa tingkatan folder dengan banyak pekerjaan di dalamnya, ini adalah pilihan terbaik.
cabreracanal
3

Buat Item baru dan pergi ke yang terakhir Anda akan menemukan opsi untuk menyalin dari yang sudah ada, cukup tulis nama pekerjaan Anda saat ini dan Anda akan memiliki klon dari proyek itu untuk bekerja dengannya.

Yug
sumber
1

Saya tidak dapat menyalin pekerjaan Jenkins dari subfolder. copy fromopsi tidak menunjukkan saran yang saya cari. Tanpa menggunakan saran menyalin nama pekerjaan tidak berhasil.

Jadi, jika Anda ingin membuat pekerjaan dari folder luar, Anda harus terlebih dahulu membuat pekerjaan dalam subfolder dan kemudian memindahkannya di folder yang berbeda di mana Anda perlu menempatkannya.

priyanka_rao
sumber
0

Semua jawaban di sini sangat membantu tetapi melewatkan satu bug yang sangat aneh tentang Jenkins. Setelah Anda mengedit konfigurasi pekerjaan baru, kadang-kadang jika tingkat zoom Anda terlalu tinggi, Anda mungkin tidak melihat opsi tombol saveatau apply. Tombol ada di halaman dan disembunyikan oleh tingkat zoom Anda, Anda harus memperkecil hingga Anda melihat tombol di kiri bawah halaman Anda.

Aneh, saya tahu!

rata-rata
sumber