プロジェクトのいくつかのgitブランチを自動的にビルドするようにJenkinsをセットアップしました。ビルドは、ビルド後のアクションとして、ソナー分析もトリガーします。
問題は、すべてのブランチが同じSonarプロジェクトを指していることです。sonar.branchプロパティがあることを知っています。Jenkinsにsonar.branchプロパティを構築中の現在のgitブランチに自動的に設定させることは可能ですか(プロジェクトのpom.xmlを変更する必要はありません)?
-Dsonar.branch.name=something
jenkinsのビルド後のアクション(詳細設定)のフィールドMAVEN_OPTSに追加してみてください。
jenkinsジョブをどのように構成するかわからないため、解決方法がわかりsomething
ません...しかし、おそらくのようなものになります$git.branch
。
私は試していなかったので、うまくいくかどうかはわかりません。
Jenkinsマルチブランチパイプラインでは、変数はBRANCH_NAME
です。
PS
質問を読んでいる間、Mavenを使用しているかどうかを判断するのは困難です。Mavenを使用していない場合:Jenkins構成に、を定義できるフィールドがありますproject properties
sonar.branch
。
これはうまくいくはずです
mvn sonar:sonar -U -Dsonar.branch.name=$BRANCH_NAME
これがJenkinsの自動実行に役立つかどうかはわかりませんが、Unixベースの環境にいる場合は、適切なブランチセットを使用してmvn sonar:sonarを実行するために、コマンドを実行できます(バッククォートに注意してください)。
mvn -Dsonar.branch=`git rev-parse --abbrev-ref HEAD` sonar:sonar
ブランチを指定するためにビルドパラメーターを使用しましたか?
はいの場合、Sonarにどのブランチであるかを簡単に伝えることができます。configtextareaに追加するだけです。
sonar.branch=${branch}
ここで、branchはビルドパラメータの名前です。