Mengubah nomor build Jenkins


142

Apakah ada cara untuk mengubah nomor build yang dikirim melalui email setelah pekerjaan selesai? Masalahnya adalah bahwa build produk TIDAK dilakukan oleh Jenkins, jadi kami ingin bisa mendapatkan nomor build (mis. Dari file teks) dan memperbarui nomor build di Jenkins agar sesuai dengan itu. Saya telah mencoba mengatur nomor build:

set BUILD_NUMBER=45

Namun email tersebut masih menunjukkan nomor pembuatan yang awalnya ditetapkan Jenkins.

Jawaban:


259

Jika Anda memiliki akses ke konsol skrip (Kelola Jenkins -> Script Console), maka Anda dapat melakukan hal berikut:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

7
Saya dapat memverifikasi ini berfungsi dengan baik untuk menyelesaikan masalah. Saya secara manual menyalin sejarah pembuatan antara dua server jenkins, dan pada server baru nextBuildNumber salah. Menjalankan ini memungkinkan saya untuk mengatur nextBuildNumber baru yang benar, tidak perlu memuat ulang konfigurasi jenkins.
Phil Hollenback

5
Jika Anda menggunakan plugin GitHub, "YourJobName"adalah "organization/repository/branchname".
Ruud

15
Bekerja Nilai dapat diverifikasi tanpa bangunan menggunakan:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder

7
Saya dapat mengkonfirmasi ini juga berfungsi untuk MultiBranch-Pipelines. "JobName" tercantum di bagian atas halaman cabang: Nama proyek lengkap: PipelineName/BranchNamejadiJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus



29

Di bawah folder ruang kerja pekerjaan, seperti:

C:\Program Files (x86)\Jenkins\jobs\job_name

ada file bernama nextBuildNumber.

Menyetel nomor build dalam file dan memuat ulang konfigurasi dari disk (menu Kelola Jenkins) akan memaksa build berikutnya Anda mulai memiliki nilai dari file sebagai BUILD_NUMBER.


9
Apakah Anda memuat ulang konfigurasi dari disk (menu Kelola Jenkins) setelah mengubah file NextBuildNumber?
vezenkov

Nggak! Saya pikir itu terjadi secara otomatis.
hfossli

Ini bekerja dengan baik untuk saya. Anda harus me-reboot server sebelum mulai mempengaruhi.
Hawkeye64

Harus mem-boot ulang server adalah hal yang menyakitkan jika Anda memiliki banyak pengguna yang menggunakan pipa. Lebih baik hindari solusi semacam ini
MorganGeek

8

Jika Anda memiliki nama cabang termasuk Maju Slash (menggunakan git flow misalnya), Anda perlu mengganti Maju Slash dengan karakter Unicode % 2F dalam nama cabang.

Berikut adalah contoh untuk pipeline My-Pipeline-Name dan rilis cabang / my-release-branch-name

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

Saya dapat mengetahuinya dengan menjalankan perintah berikut yang akan mencantumkan pekerjaan yang berbeda (cabang) untuk pipa Anda

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

Semoga ini bisa membantu.



1

Anda dapat mengubah nomor build dengan memperbarui file $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber di server Jenkins.

Anda juga dapat menginstal plugin Next Build Number plugin untuk mengubah nomor build menggunakan CLI atau UI


Perhatikan bahwa mengubah nomor build di file BuBeildNumber berikutnya sendiri tidak cukup, menjalankan "Reload Configuration from Disk" di menu "Manage Jenkins" juga diperlukan.
Falstaff

-4

Dengan menggunakan variabel lingkungan:

$BUILD_NUMBER =4

2
Tolong, jangan berteriak. Terima kasih.
OliBlogger
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.