Search code examples
gitmavenjenkinssonarqube

Sonar analysis using multiple git branches in Jenkins


I have setup Jenkins to automatically build several git branches of my project. The build also triggers Sonar analysis, as a post-build action.

The problem is that all branches point to the same Sonar project. I know that there is a sonar.branch property. Is it possible to have Jenkins automatically set sonar.branch property to the current git branch being built (without having to change project's pom.xml)?


Solution

  • You can try adding -Dsonar.branch.name=something in the field MAVEN_OPTS in jenkins post-build action (Advanced configuration).

    I don't know how to resolve something, since I don't know how you configure your jenkins job... but it will probably be something like $git.branch.

    I didn't try, so i'm not sure it will work.

    In a Jenkins multi-branch pipeline, the variable is BRANCH_NAME.

    P.S. While reading your question it's difficult to say if you are using maven or not to trigger sonar. If you are not using maven: there is a project properties field in the Jenkins config where you can define sonar.branch.