Bagaimana cara menonaktifkan beberapa cabang di Multibranch Jenkins Builds?

10

Saya memiliki pekerjaan multibranch yang diatur untuk menjalankan cabang apa pun dengan Jenkinsfile.

Saya memiliki beberapa opsi yang dapat saya pikirkan jika saya ingin menghapus cabang dari daftar pekerjaan yang berjalan untuk pipa multi-cabang.

  1. Saya dapat menghapus cabang
  2. Saya dapat menghapus Jenkinsfile di cabang itu

Solusi kedua adalah baik, kecuali saya perlu komit dan dorong ke repositori git untuk cabang saya, dan jika cabang itu digabung ke cabang lain, itu akan menghancurkan Jenkinsfile.

Apa cara terbaik untuk menonaktifkan hanya beberapa cabang pipa multibranch?

David West
sumber

Jawaban:

17

Jenkins dapat menyaring cabang dalam pipa multibranch dengan nama menggunakan wildcard atau ekspresi reguler.

cabang filter jenkins

vega casey
sumber
Adakah cara untuk melakukan ini di dalam Jenkinsfile (sehingga dapat direproduksi)?
xjcl
1
Ya, Anda dapat menambahkan when { anyOf { branch 'master'; branch 'release/**' } }dalam tahap apa pun (dalam deklaratif) atau if (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}dalam pipa skrip (hampir di mana saja). Untuk opsi pertama, ada lebih banyak tersedia di jenkins.io/doc/book/pipeline/syntax/#when . Bagaimanapun, cara terbaik adalah mengkonfigurasi ini di plugin pipa multibranch, seperti yang dinyatakan dalam jawaban.
biolauri
-1

Hapus saja Jenkinsfile di cabang yang Anda tidak ingin memiliki pekerjaan cabang yang sesuai. Ini akan menghapus pekerjaan cabang (tentu saja, jika Anda telah menetapkan "Strategi Item Orphan Anda" dengan tepat).

Dari perspektif Proyek Pipa Multibranch Jenkins, ini memiliki efek yang sama dengan menghapus cabang. Ini karena ini hanya memindai cabang yang berisi Jenkinsfiles sebagai kriteria kapan membuat (atau menghapus) pekerjaan cabang yang sesuai.

Kembalikan komit untuk memulihkan Jenkinsfile jika / saat Anda membutuhkan pekerjaan cabang lagi.

timblaktu
sumber
Ini terlalu banyak pekerjaan. Saat Anda membuat cabang dan menghapus file, Anda mengubah riwayat GIT tanpa alasan yang jelas. Jauh lebih baik untuk memfilter di tingkat Jenkins sehingga Anda tidak perlu melakukan apa pun.
casey vega