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
Trả lời
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.
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. –
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. –
- 1. chuyển git pull request từ bitbucket sang github?
- 2. Khi tôi "git push" git bây giờ nói "Create pull request for ...". Tại sao?
- 3. Cải thiện TFS2013 Pull Request merge tỷ lệ thành công
- 4. git request-pull: cách tạo yêu cầu kéo (github) trên dòng lệnh?
- 5. Sự khác biệt giữa git pull và git pull --rebase
- 6. git pull: permission denied
- 7. Git Pull Aborting
- 8. Git rollback 1 pull
- 9. git partial pull
- 10. "git pull" vỡ
- 11. Hiểu "git pull --rebase" vs "git rebase"
- 12. xcode git pull/push crash
- 13. git pull không hoạt động
- 14. git pull dựa trên SHA
- 15. xung đột Git trong pull yêu cầu
- 16. git pull VS git tìm nạp git rebase
- 17. Tương đương dòng lệnh git chính xác với các nút "Pull Request" và "Fork Repo" trong Github
- 18. Visual Studio Tools cho GIT - FETCH/PUBLISH vs PULL/PUSH
- 19. Sự khác nhau giữa git pull origin master & git pull origin/master
- 20. Tôi có thể tắt git pull không?
- 21. git pull và git push in one go
- 22. Git fetch/pull đã ngừng hoạt động
- 23. Git auto-pull sử dụng cronjob
- 24. Có tùy chọn "git pull --dry-run" trong Git không?
- 25. Git Pull: Thay đổi xác thực
- 26. Git Pull là không thể, Unmerged Files
- 27. Heroku: cách "git pull" sau 'git push -f'
- 28. Hoàn tác một git pull --rebase
- 29. git pull qua PHP exec IIS
- 30. Git pull là gì. làm gì?
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 ...) –
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
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. –