2013-03-24 12 views
8

mam setup Jenkins do automatycznego budowania kilka oddziałów git mojego projektu. Kompilacja uruchamia również analizę sonaru, jako działania po wybudowaniu.analiza Sonar korzystania z wielu oddziałów git w Jenkins

Problemem jest to, że wszystkie gałęzie wskazywać na tym samym projekcie Sonar. Wiem, że istnieje własność sonar.branch. Czy możliwe jest, aby Jenkins automatycznie ustawił właściwość sonar.branch na aktualnie budowaną gałąź git (bez konieczności zmiany projektu pom.xml)?

Odpowiedz

18

Można spróbować dodać -Dsonar.branch=something w MAVEN_OPTS polowych w jenkins akcji post-build (Advanced Configuration).

Nie wiem, jak rozwiązać something, ponieważ nie wiem, jak skonfigurować swoją pracę Jenkins ... ale prawdopodobnie będzie to coś w stylu $git.branch. Here is the doc

nie próbowałem, więc nie jestem pewien, że będzie działać.

Kiedy posiadające wiele gałęzi, moje podejście jest zawsze zdefiniować jedno Jenkins pracę na gałąź (funkcja kopiowania z Jenkins może pomóc)

EDIT

Podczas czytania pytanie trudno jest powiedzieć, czy używasz maven lub nie, aby wywołać sonar. Jeśli nie używasz programu maven: istnieje pole project properties w konfiguracji Jenkins, w którym można zdefiniować sonar.branch. Here is the doc

+1

skończyło się stosując podejście zasugerował, stosując różne miejsca pracy dla każdego oddziału. Używam Jenkinsa do wyzwalania sonaru, więc ustawiam właściwość sonar.branch odpowiednio dla każdego zadania. myślę, że to ma również tę zaletę, że zadanie budowania jest wyzwalany tylko wtedy commit jest dla tej konkretnej branży, a także można stworzyć bardziej precyzyjną kontrolę harmonogramu build/powiadomienia dla ważniejszych gałęzi itp – spyk

+0

nie działa na ja :-( dodałem $ GIT_BRANCH w MAVEN_OPTS jeszcze kiedy buduję z innego oddziału przez jakiegoś innego zadania. -. pokrycie deski rozdzielczej pokazano zmienia się wynikami najnowszej metę oddziału chcę pozostać sam dla mojej branży . – R11G

0

Nie jestem pewien, czy to pomoże w automatycznym wykonaniu Jenkins, ale aby uruchomić sonar mvn: sonar z odpowiednim zestawem gałęzi, można uruchomić polecenie (zanotuj zacytowanie), jeśli jesteś w środowisko oparte na Uniksie:

mvn -Dsonar.branch=`git rev-parse --abbrev-ref HEAD` sonar:sonar 
0

Czy użyłeś parametrów kompilacji w celu określenia gałęzi?

Jeśli tak, można łatwo powiedzieć do Sonar która gałąź jest to, Juste dodać config tekstowego:

sonar.branch=${branch} 

Jeżeli oddział jest nazwą parametru kompilacji.

0

To powinno działać

mvn sonar:sonar -U -Dsoanr.branch=<branch> 
Powiązane problemy