I am trying to use the Jenkins plugin. I have this statement that I want to use in either the “Analysis properties” or the sonar-project.properties file.
If ghprbTargetBranch exist then set and use sonar.pullrequest.branch, sonar.pullrequest.base, sonar.pullrequest.key but it does not work. All 4 end up in the CLI parameters.
if [ ${ghprbTargetBranch} != "" ]
then
sonar.pullrequest.branch=${GIT_BRANCH}
sonar.pullrequest.base=origin/${ghprbTargetBranch}
sonar.pullrequest.key=${ghprbPullId}
fi
if [ ${ghprbTargetBranch} == "" ]
then
sonar.branch.name=${GIT_BRANCH}
fi
also, I used this approach, and this time it was just showing SONAR_BRANCH, and SONAR_TARGET as a word, not value.
if [ ${env.BRANCH_NAME} != "master" ]
then
SONAR_BRANCH=${env.BRANCH_NAME}
SONAR_TARGET=master
else
SONAR_BRANCH=${env.BRANCH_NAME}
SONAR_TARGET=
fi
sonar.branch.name=${SONAR_BRANCH}
sonar.branch.target= ${SONAR_TARGET}
How can I use the If statement either in the “Analysis properties” or the sonar-project.properties file.
Neither the Jenkins analysis properties nor the sonar-project.properties file are interpreted by a scripting language, so you can’t use conditional statements in them. If you want to use Jenkins to analyze multi-branch projects, the best way to do it is with the Branch Source plugin, following the instructions here. The SonarQube Jenkins plugin will auto-detect all the Branch and PR parameters that you need.
I tried this in a simple project in my Jenkins setup and it doesn’t work (the post you referenced is two years old so things may have changed). You might want to look at using environment variables in a Jenkinsfile as an alternative.