Jenkins - cara membangun cabang tertentu


98

Ini tidak sesederhana hanya melakukan pembuatan parametrized. Saya sudah mendapatkan proses build khusus yang akan dibangun dan diterapkan setiap kali salah satu cabang ini didorong ke GitHub:

masukkan deskripsi gambar di sini

Jadi jika saya baru saja mendorong developdan berhasil, bagaimana cara memicu pembuatan manual dan menariknya feature/my-new-feature(tanpa melakukan a git push)? Saya mencoba mengaktifkan parametrized build, menambahkan string baru yang disebut branch, dan kemudian menambahkan penentu cabang baru */$branch,. Saya kemudian menjalankan build dan set branchke feature/my-new-featuredan masih ditarik dari develop.

Saya menghargai bantuan apa pun!


Apakah Anda berbicara tentang webhook github. ini mungkin menyelesaikan masalah Anda. apakah Anda ingin memicu ini dari github?
Abhijeet Kamble

1
Tidak, integrasi GitHub sudah berfungsi. Saya perlu tahu cara membangun cabang tertentu secara manual.
ffxsam

3
Saya memiliki masalah yang sama. Pekerjaan tersebut dikonfigurasi untuk membangun cabang yang berbeda dan dipicu oleh git hook. Tetapi ketika saya ingin membangun cabang tertentu secara manual (tanpa perubahan baru di GIT) saya klik "Bangun sekarang" tetapi itu selalu membangun cabang yang terakhir diperiksa. Juga mencoba berbagai properti build.
cornz

Jika parameter Anda bernama cabang, Anda hanya perlu menentukan $branchdi bidang penentu cabang.
Alexey

1
@Alexey, tapi kemudian selama build yang dimulai secara otomatis ini $branchakan menghasilkan string kosong, saya kira.
Nakilon

Jawaban:


112

Solusi terbaiknya adalah:

Tambahkan parameter string di pekerjaan yang sudah ada masukkan deskripsi gambar di sini

Kemudian di Source Code Managementbagian update Branches to builduntuk menggunakan parameter string yang Anda tentukanmasukkan deskripsi gambar di sini

Jika Anda melihat kotak centang berlabel Lightweight checkout, pastikan itu tidak dicentang.

Konfigurasi yang ditunjukkan dalam gambar akan memberi tahu pekerjaan jenkins untuk digunakan mastersebagai cabang default, dan untuk build manual akan meminta Anda memasukkan detail cabang (FYI: secara default disetel ke master)masukkan deskripsi gambar di sini


4
Membangun master secara default tidak akan memotongnya untuk build pengembangan generik yang seharusnya membangun semua cabang pengembangan.
static_rtti

9
Ya Tuhan, itu sangat menyebalkan. Mengapa Jenkins tidak menyimpan Branches to buildbagian itu dengan repo Git sialan yang berlaku untuknya? PITA bodoh harus melakukan ini untuk menentukan cabang yang akan dibangun.
Alex Zavatone

9
Dong ini tidak berhasil (untuk saya). Saya berakhir dengan Jenkins mencoba memeriksa cabang git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --pruneyang jelas tidak valid.
Liam

1
ini dicatat sebagai bug di Jenkins jadi sulit untuk melihat bagaimana ini bekerja?
Liam

19
@Liam Seperti yang disarankan dalam tiket bug, Anda perlu menghapus centang "Pembayaran ringan" agar ini berfungsi.
asmaier

10

Saya tidak berpikir Anda dapat berdua dalam pekerjaan jenkins yang sama, yang perlu Anda lakukan adalah mengkonfigurasi pekerjaan jenkins baru yang akan memiliki akses ke github Anda untuk mengambil cabang dan kemudian Anda dapat memilih mana yang akan dibangun secara manual.

Cukup tandai sebagai build berparameter, tentukan nama, dan parameter yang dikonfigurasi sebagai git parameter

masukkan deskripsi gambar di sini

dan sekarang Anda dapat mengonfigurasi opsi git:

masukkan deskripsi gambar di sini


7
Parameter git itu adalah plugin jenkins ?? Saya tidak melihat opsi untuk menambahkan jenis prameter itu. Jika ini adalah plugin, dapatkah Anda menunjukkannya di jawaban?
Leandro David

@LeandroDavid yes Git Parameter adalah plugin yang perlu diinstal setelah itu Anda akan melihat opsi ini di bawah Add Parameter.
gotosachin

9

Untuk memeriksa cabang melalui skrip Jenkins gunakan:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
Saya tahu ini bukan tentang apa pertanyaannya, tetapi saya sedang mencari info ini dan google terus menyarankan situs ini sebagai jawaban.
Igor L.

sama disini bro. Apakah Anda dapat menemukan jawaban untuk jawaban yang tepat
berpikir

0

Ini adalah perluasan dari jawaban yang diberikan oleh Ranjith

Saya menyarankan, Anda memilih build parameter pilihan, dan tentukan cabang yang ingin Anda bangun. Parameter Pilihan Aktif

Dan setelah itu, Anda dapat menentukan cabang yang akan dibangun. Cabang untuk Membangun

Sekarang, ketika Anda akan membangun proyek Anda, Anda akan diberikan "Build with Parameters, di mana Anda dapat memilih cabang yang akan dibangun"

Anda juga dapat menulis skrip asyik untuk mengambil semua cabang Anda ke dalam parameter pilihan aktif.


Tolong jelaskan. TeamCity melakukan ini secara default, namun Jenkins bahkan tidak bisa mengikat sepatu sendiri !!!
C Johnson

0

masukkan deskripsi gambar di sini

Akan ada opsi di konfigurasi di bawah Pemicu Build

Periksa Cabang GitHub

Sebuah hook akan dibuat dan kemudian Anda dapat membangun cabang apa pun yang Anda suka dari Jenkins saat Anda memilih Github Branches masukkan deskripsi gambar di sini

Semoga membantu :)


Saya mencoba menggunakan plugin ini dengan penyiapan ini, tetapi saya tidak dapat menemukan cara untuk memulai pekerjaan. Apakah ada cara lain untuk memeriksa apakah acara datang dengan benar dari gh?
Vito De Tullio

Apakah Anda mendapatkan Run Branch Triggeropsi, ini memindai repo git untuk semua cabang yang tersedia ... Juga lihat saja Log jenkins -> di bawah Kelola Jenkins ... untuk melihat apakah telah terjadi kesalahan
rohit thomas

1
Harap jelaskan, uraian Anda terlalu kecil dan pendek.
C Johnson

0

Saya dapat melihat banyak jawaban bagus untuk pertanyaan tersebut, tetapi saya tetap ingin membagikan metode ini, dengan menggunakan parameter Git sebagai berikut:

Tambahkan parameter Git

Saat membangun pipa, Anda akan diminta untuk memilih cabang: Pilih cabang yang akan dibangun

Setelah itu melalui kode groovy Anda dapat menentukan cabang yang ingin Anda klon:

git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github' 

Perhatikan bahwa saya menggunakan potongan dari 7 ke karakter terakhir untuk mengecilkan "origin /" dan mendapatkan nama cabang.

Juga jika Anda mengonfigurasi pemicu webhook, itu masih berfungsi dan itu akan mengambil cabang default yang Anda tentukan ( masterdalam kasus kami).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.