spyk
spyk

Reputation: 898

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)?

Upvotes: 15

Views: 33800

Answers (5)

Alessandro S.
Alessandro S.

Reputation: 1033

For achieving this I generally use -Dsonar.branch.name=${env.CHANGE_BRANCH}

Upvotes: 0

Gnani
Gnani

Reputation: 149

This should work

mvn sonar:sonar -U -Dsonar.branch.name=$BRANCH_NAME

Upvotes: 5

ben75
ben75

Reputation: 28706

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.

Upvotes: 25

Thomas Decaux
Thomas Decaux

Reputation: 22661

Did you use build parameters in order to specify the branch?

If yes, you can easily tell to Sonar which branch is it, juste add in config textarea:

sonar.branch=${branch}

Where branch is the name of the build parameter.

Upvotes: 0

JeanMarc
JeanMarc

Reputation: 326

I am not sure if this helps you with the automated Jenkins execution, but to run a mvn sonar:sonar with the proper branch set, you can run the command (note the back-quotes), if you are in a Unix based environment:

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

Upvotes: 1

Related Questions