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.

erman8
sumber

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)
lite
sumber
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
37

dapat dilakukan dengan plugin: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

info lebih lanjut: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

jika Anda tidak menyukai plugin:

Jika Anda ingin mengubah nomor build melalui file NextBuildNumber Anda harus "Muat Ulang Konfigurasi dari Disk" dari halaman "Kelola Jenkins".

mighq
sumber
2
Tidak perlu menggunakan plugin.
david.perez
1
Terima kasih, Anda menghemat hari saya.
Yukio Fukuzawa
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.

vezenkov
sumber
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.

DaWyz
sumber
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

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