Có cách nào để có danh sách các bản dựng RUNNING trong Jenkins thông qua một hệ thống Groovy Script không? tôi đã cố gắng Looping qua Chấp hành viên bận rộn, nhưng từ một đối tượng thi hành di chúc, tôi không thể có được xây dựng đối tượng:Làm thế nào để có được một danh sách chạy jenkins xây dựng thông qua kịch bản groovy?
def busyExecutors = Jenkins.instance.computers
.collect {
c -> c.executors.findAll { it.isBusy() }
}
.flatten() // reminder: transforms list(list(executor)) into list(executor)
busyExecutors.each { e ->
println('=====print out methods of executor object=======');
println e.metaClass.methods*.name.sort().unique();
}
Tôi cũng có thể nhắm mục tiêu công việc mà tôi đang quan tâm đến như vậy:
def item = hudson.model.Hudson.instance.getItem("my_job");
println item.metaClass.methods*.name.sort().unique();
Nhưng sau đó tôi sẽ phải lặp qua 100s (nếu không nhiều hơn) xây dựng và yêu cầu mỗi xây dựng nếu họ đang chạy.
Phải có cách dễ dàng/tốt hơn để nhận danh sách các bản dựng đang chạy.
Có rất nhiều thông tin về làm thế nào để làm những việc khác nhau thông qua hệ thống Groovy Scripts (một số trong đó tôi đã viết), nhưng tôi không thể tìm ra cách để có được một danh sách các hoạt động xây dựng:
How to get currently running job's node name in jenkins using groovy
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console
https://gist.github.com/dnozay/e7afcf7a7dd8f73a4e05
How to make a Jenkins/Hudson job surveil some others jobs and decide whether to build or not?
Nhận ra tôi có cùng một vấn đề. Ngoài ra một gotcha là looping thông qua thực thi chỉ bao gồm các nô lệ, không phải là chủ. PS, xem ví dụ của tôi dưới đây. Để có được bản dựng cho công việc bạn có thể sử dụng '_getRuns()' –