2012-03-08 27 views
5

Có cách nào dễ dàng trong Jenkins liệt kê tất cả các bản dựng được đánh dấu là giữ mãi mãi không? Và sau đó, lý tưởng, một cú nhấp chuột để bỏ đánh dấu bản dựng là giữ vĩnh viễn hoặc xóa ngay lập tức?Liệt kê tất cả những gì được xây dựng mãi mãi trong Jenkins?

Trong quá trình của chúng tôi, chúng tôi đánh dấu một bản dựng là giữ mãi mãi nếu nó liên quan đến một số loại lỗi cụ thể; đó là để tránh cho Jenkins tự động xóa theo thời gian. Tôi cần một cách dễ dàng để có được một danh sách của tất cả những người giữ mãi mãi xây dựng để họ không mất tất cả không gian đĩa của chúng tôi theo thời gian.

Trả lời

8

Các truy vấn XPath sau đây đối với Jenkins sẽ liệt kê các URL của tất cả các bản xây dựng được đánh dấu 'Giữ Forever':

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever 

Nhập nó trong trình duyệt và xem những gì nó sẽ trả về.

Bây giờ, bạn có thể nhúng nó vào HTML dựa trên XSLT để nhận danh sách có liên kết đến các bản dựng đó. Để xóa các tòa nhà, bạn có thể cung cấp một nút gọi Jenkins CLI:

java -jar jenkins-cli.jar -s http://[jenkins_server]/ delete-builds [job-name] [build-num] 

Thật không may, tôi không biết làm thế nào để vô hiệu hóa 'giữ build mãi mãi' với CLI mà không xóa nó.

+1

Hoạt động tuyệt vời - nếu Jenkins của bạn không quá lớn. Thật không may, Jenkins sản xuất có hàng trăm công ăn việc làm với một vài nghìn bản dựng. Ngăn xếp Java đã hết dung lượng. Nhưng sử dụng cùng một ý tưởng, tôi có thể viết một kịch bản lặp lại công việc và xây dựng và làm điều tương tự. Cảm ơn đã giúp đỡ! –

3

tôi đang tìm kiếm điều tương tự, và Jenkins của chúng tôi là khá lớn như tốt và cố gắng liên kết:

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever 

tôi đã kết thúc đâm nó.

Nhưng khi nó chỉ ra tôi chỉ yêu cầu xây dựng 'mãi mãi' cuối cùng của một công việc tại một thời điểm, mà dường như làm việc cách nhanh hơn. Vì vậy, tôi sử dụng sau đây thay vì:

http://[jenkisn_server]/job/[job_name]/api/xml/?depth=2&xpath=/freeStyleProject/build[keepLog="true"]/number&wrapper=forever 

mà trả về xml với tất cả các số hợp đồng xây dựng được đánh dấu là 'giữ mãi mãi' Bạn có thể thay đổi để phù hợp với nhu cầu xpath của bạn.

+2

Tôi không chắc chắn những gì tôi đã làm sai, đây là những gì tôi đã có thể nghĩ hữu ích. Bình luận của bạn cũng không hữu ích lắm. – teapothat

Các vấn đề liên quan