Thay đổi số bản dựng Jenkins


142

Có cách nào để thay đổi số bản dựng được gửi qua email sau khi hoàn thành công việc không? Vấn đề là các bản dựng sản phẩm KHÔNG được Jenkins thực hiện, vì vậy chúng tôi muốn có thể lấy số bản dựng (ví dụ: từ tệp văn bản) và cập nhật số bản dựng trong Jenkins để khớp với nó. Tôi đã cố gắng thiết lập số bản dựng:

set BUILD_NUMBER=45

Nhưng email vẫn hiển thị số bản dựng mà Jenkins đặt ban đầu.

Câu trả lời:


259

Nếu bạn có quyền truy cập vào bảng điều khiển tập lệnh (Manage Jenkins -> Script Console), thì bạn có thể thực hiện việc này như sau:

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

7
Tôi có thể xác minh điều này hoạt động hoàn hảo để giải quyết vấn đề. Tôi đã sao chép thủ công lịch sử xây dựng giữa hai máy chủ jenkins và trên máy chủ mới nextBuildNumber đã sai. Chạy này cho phép tôi đặt một nextBuildNumber mới chính xác, không yêu cầu tải lại cấu hình jenkins.
Phil Hollenback

5
Nếu bạn đang sử dụng các plugin GitHub, "YourJobName""organization/repository/branchname".
Ruud

15
Làm. Giá trị có thể được xác minh mà không cần xây dựng bằng cách sử dụng:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder

7
Tôi có thể xác nhận điều này cũng đang hoạt động cho MultiBranch-Pipelines. "Tên công việc" được liệt kê ở trên cùng của trang chi nhánh: Tên dự án đầy đủ: PipelineName/BranchNamevì vậy nó sẽ làJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus


37

có thể được thực hiện với plugin: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

thêm thông tin: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

nếu bạn không thích plugin:

Nếu bạn muốn thay đổi số bản dựng qua tệp nextBuildNumber, bạn nên "Tải lại cấu hình từ đĩa" từ trang "Manage Jenkins".


2
Không cần sử dụng plugin.
david.perez

1
Cảm ơn, bạn tiết kiệm ngày của tôi.
Yukio Fukuzawa

29

Trong thư mục không gian làm việc, như:

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

Có một tập tin tên nextBuildNumber.

Đặt số bản dựng trong tệp và tải lại cấu hình từ đĩa (menu Manage Jenkins) sẽ buộc bản dựng tiếp theo bạn bắt đầu có giá trị từ tệp là BUILD_NUMBER.


9
Bạn đã tải lại cấu hình từ đĩa (menu Manage Jenkins) sau khi thay đổi tệp nextBuildNumber?
vezenkov

Không! Tôi nghĩ rằng nó đã xảy ra tự động.
hfossli

Điều này làm việc hoàn hảo cho tôi. Bạn phải khởi động lại máy chủ trước khi nó ảnh hưởng.
Hawkeye64

Phải khởi động lại máy chủ là một nỗi đau nếu bạn có nhiều người dùng đang chạy. Tốt hơn nên tránh loại giải pháp này
MorganGeek

8

Nếu bạn có tên nhánh bao gồm Forward Slash ( ví dụ sử dụng luồng git ), bạn sẽ cần thay thế Slash chuyển tiếp bằng ký tự Unicode % 2F của nó trong tên nhánh.

Dưới đây là một ví dụ cho đường ống My-Pipeline-Name và nhánh phát hành / my-release-Branch-name

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

Tôi đã có thể tìm hiểu về điều này bằng cách chạy lệnh sau sẽ liệt kê các công việc (nhánh) khác nhau cho đường ống của bạn

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

Hy vọng nó giúp.



1

Bạn có thể thay đổi số bản dựng bằng cách cập nhật tệp $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber trên máy chủ Jenkins.

Bạn cũng có thể cài đặt plugin Next Build Number plugin để thay đổi số bản dựng bằng CLI hoặc UI


Lưu ý rằng việc tự thay đổi số bản dựng trong tệp nextBuildNumber là không đủ, việc thực hiện "Tải lại cấu hình từ đĩa" trong menu "Manage Jenkins" cũng cần thiết.
chim ưng

-4

Bằng cách sử dụng các biến môi trường:

$BUILD_NUMBER =4

2
Làm ơn đừng hét lên. Cảm ơn bạn.
OliBlogger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.