2014-09-04 19 views
7

Có cách nào để thiết lập Findbugs (hoặc bất kỳ công cụ phân tích mã tĩnh nào khác) trong Jenkins để phân tích các yêu cầu kéo đến và so sánh kết quả với nhánh chính không? Mục tiêu của tôi là từ chối các yêu cầu kéo làm tăng số lượng các vấn đề phân tích mã tĩnh.Findbugs cho Git Pull Request

+0

Tôi nghĩ .... có ** có thể không có cách nào ** (Tôi vui mừng ... nếu có ai có thể đi theo cách ...) –

+1

Yêu cầu kéo có tích hợp Travis CI. Có lẽ bạn có thể thiết lập cấu hình Travis để thực hiện những gì bạn muốn. Không chắc chắn nếu nó có thể hoặc dễ dàng nhưng giá trị một shot. – musiKk

+0

Cảm ơn bạn đã đề xuất. Thật không may tôi là loại bị mắc kẹt với Jenkins. –

Trả lời

2

Bạn có thể nhận ra ý tưởng của mình bằng cách sử dụng kiểu kiểm tra, trình tìm kiếm và pmd (-cpd) của Maven-plugins.

Mỗi plugin này có một ": check" -mojo, có thể không xây dựng - dựa trên số không hoặc vi phạm quy tắc được định cấu hình.

mojos này được ràng buộc với maven- "xác minh" -phase, vì vậy mvn xác minh sẽ thực hiện công việc - hoặc bạn thực thi mojos trực tiếp bên trong jenkins-build (cấu hình công việc "Build" -> "Goals and options" ->mvn verfiy hoặc kiểu kiểm tra mvn: kiểm tra).

Các plugin có các cách khác nhau để định cấu hình lỗi.

Ví dụ: checkstyle-plugin có thông số maxAllowedViolations-cấu hình. Vì vậy, bạn có thể đặt thông số này thành số vi phạm hiện tại của mình và sử dụng kiểu kiểm tra mvn verfiy hoặc mvn: kiểm tra để công trình của bạn không thành công, nếu xảy ra vi phạm mới. Tất nhiên, bạn sẽ phải tăng thông số này mỗi lần một vi phạm kiểu séc được sửa.

Trong trình cắm thêm bằng ngón tay, bản dựng của bạn sẽ không bị vi phạm, trước khi bạn có thể sử dụng các bộ tìm kiếm mvn: hãy kiểm tra.

+0

Tôi sẽ chấp nhận câu trả lời này, bởi vì dường như đó là điều gần nhất với giải pháp. Mặc dù cả hai giải pháp đều không thực sự khả thi. Điều chỉnh kiểm tra maxAllowedViolations mỗi lần là bảo trì Tôi không muốn làm và tìm kiếm các vi phạm phải bằng 0 có nghĩa là có kiểm tra tôi phải loại trừ khỏi xây dựng Jenkins, mà thực sự là những gì tôi muốn tránh. –

+0

Thực ra, tôi không nghĩ rằng pmd là cần thiết cho các kiểm tra bạn đề nghị. findbugs và checkstyle có các tùy chọn để không xây dựng maven. –