簡體   English   中英

在 Jenkins 中使用多個 git 分支進行聲納分析

[英]Sonar analysis using multiple git branches in Jenkins

我已經設置 Jenkins 來自動構建我項目的幾個 git 分支。 構建還會觸發聲納分析,作為構建后的操作。

問題是所有分支都指向同一個 Sonar 項目。 我知道有一個 sonar.branch 屬性。 是否可以讓 Jenkins 自動將 sonar.branch 屬性設置為正在構建的當前 git 分支(無需更改項目的 pom.xml)?

您可以嘗試在 jenkins 構建后操作(高級配置)的字段 MAVEN_OPTS 中添加-Dsonar.branch.name=something

我不something如何解決問題,因為我不知道你如何配置你的詹金斯工作......但它可能會像$git.branch

我沒有嘗試,所以我不確定它是否會起作用。

在 Jenkins 多分支管道中,變量是BRANCH_NAME

PS在閱讀您的問題時,很難說您是否使用 Maven 來觸發聲納。 如果您不使用 maven: Jenkins 配置中有一個project properties字段,您可以在其中定義sonar.branch

這應該工作

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

我不確定這是否有助於您自動執行 Jenkins,但是要運行具有正確分支集的 mvn sonar:sonar,如果您在基於 Unix 的環境中,您可以運行命令(注意反引號):

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

您是否使用構建參數來指定分支?

如果是,您可以輕松地告訴 Sonar 它是哪個分支,只需在配置文本區域中添加:

sonar.branch=${branch}

其中 branch 是構建參數的名稱。

為了實現這一點,我通常使用-Dsonar.branch.name=${env.CHANGE_BRANCH}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM