2013-02-07 34 views
5

Tôi đang viết một plugin Jenkins và tôi muốn truy xuất thông tin xây dựng lần cuối (số, dấu thời gian) cho một công việc cụ thể từ api Jenkins. Tôi có thể thực hiện cuộc gọi REST sau và lấy nó.Nhận thông tin xây dựng từ Jenkins API

<url_to_jenkins>job/<job name>/api/json?tree=builds[number,status,timestamp,id,result] 

Vì plugin của tôi cũng được triển khai bên trong Jenkins, có cách nào để nhận thông tin này bằng cách gọi trực tiếp JAVA api thay vì cuộc gọi REST này?

+0

có vẻ như nó chỉ hỗ trợ API từ xa, https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API. Tôi nghĩ rằng nó có ý nghĩa hơn vì các API HTTP cung cấp sự linh hoạt hơn :) – sameera207

+0

Cảm ơn Sameera ... Có chúng linh hoạt và hữu ích nếu thông điệp được truyền đi giữa hai hệ thống. nhưng ở đây nó xảy ra trong cùng một hệ thống. Có nghĩa là tôi có thể truy cập trực tiếp các gói Jenkins (Hudson. *) Từ plugin của tôi. Không có tài liệu thực sự cho rằng :(. – user479151

Trả lời

2

Tài liệu java Jenkins có sẵn here. Các apis này cũng có thể được sử dụng cùng với kịch bản groovy trực tiếp. Nếu bạn muốn sử dụng plugin tập lệnh soạn thảo Postbuild, bạn có thể truy cập bản dựng với manager. Dưới đây là một đoạn mã mẫu giúp chặn đứng một xây dựng nếu nó không thành công

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) { 
manager.build.project.disabled = true 
} 

Bạn có thể nhìn vào Groovy Postbuild Plugin để biết thêm chi tiết

0

Từ mã java nó nên trông giống như:
1) được mục: Jenkins .getInstance(). GetItem ("jobName")
2) kiểm tra mục đó là instanceof một số loại công việc (hoặc chỉ cần TÓM TẮT) và đúc
3) sau đó chỉ cần gọi .getLastBuild() trên đối tượng này
4) điều này sẽ là một đối tượng xây dựng (AbstractBuild), nơi bạn có thể nhận id, ngày, kết quả và v.v.

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