2014-09-04 26 views
7

Czy istnieje sposób, aby skonfigurować Findbugs (lub inne narzędzie do analizy statycznego kodu) w Jenkins, aby przeanalizować przychodzące żądania ściągania i porównać wynik z główną gałęzią? Moim celem jest odrzucenie żądań ściągania, które zwiększają liczbę problemów związanych z analizą kodu statycznego.Findbugs for Git Pull Request

+0

Myślę, że ... tam ** może nie być mowy ** (Cieszę się ... jeśli ktoś może przyjść z drogą ...) –

+1

Żądania Pull mają integrację Travis CI. Może możesz skonfigurować konfigurację Travis, która robi to, co chcesz. Nie jestem pewien, czy jest to możliwe, czy łatwe, ale warte zachodu. – musiKk

+0

Dzięki za sugestię. Niestety utknąłem z Jenkinsem. –

Odpowiedz

2

Możesz zrealizować swój pomysł za pomocą stylu Maven-plugins, findbugs i pmd (-cpd).

Każda z tych wtyczek ma ": check" -mojo, która może nie powieść kompilacji - w oparciu o zero lub skonfigurowane naruszenia zasad.

This Mojos są zobowiązane do maven- "zweryfikować" FAZA, więc mvn zweryfikować zrobi pracy - lub możesz wykonać mojos bezpośrednio w swojej jenkins-build (konfiguracja zadania "Build" -> "Cele i opcje" ->mvn verfiy lub mvn test checkstyle: sprawdź).

Wtyczki mają różne sposoby konfiguracji niepowodzenia.

Na przykład wtyczka checkstyle ma maxAllowedViolations -konfiguracja-parametr. Możesz więc ustawić ten parametr na bieżące liczby naruszeń i użyć mvn verfiy lub mvn checkstyle: sprawdź, aby Twoja kompilacja się nie udała, jeśli pojawi się nowe naruszenie. Oczywiście, musisz zwiększyć ten parametr za każdym razem, gdy zostanie naprawione naruszenie stylu.

W wtyczce typu fingbugs Twoja kompilacja musi być wolna od naruszeń, zanim będzie można użyć mvn findbugs: sprawdź.

+0

Przyjmuję tę odpowiedź, ponieważ podobno jest to najbliżej rozwiązania. Chociaż oba rozwiązania nie są naprawdę praktyczne. Dopasowywanie maksymalnych przekroczeń w stylu checkstyle za każdym razem to utrzymanie, którego nie chcę robić, a wykroczenie w sprawie findbugs musi być zerowe, więc są kontrole, które muszę wykluczyć z kompilacji Jenkinsa, czego tak naprawdę chciałem uniknąć. –

+0

Właściwie nie uważam, że pmd jest niezbędny do kontroli, które sugerujesz. findbugs i checkstyle mają opcje, by nie zawieść budowania mavenów. –