AdSense

網頁

2024/2/23

Jenkins Freestyle project整合SonarQube

Jenkins Freestyle project整合SonarQube的過程如下。


環境:

  • Rocky Linux 9.2 (Blue Onyx)
  • Jenkins 2.414.3


事前要求

參考「Linux Docker安裝SonarQube」在Jenkins所在server安裝SonarQube server。

參考「Linux 安裝SonarScanner CLI」在Jenkins所在server安裝SonarScanner CLI。


安裝SonarQube Scanner plugiin

前往Jenkins管理頁面的[Plugins]頁面,在[Available plugins]頁面搜尋欄輸入"SonarQube Scanner"找到[SonarQube Scanner for Jenkins]並下載。




設定SonarQube servers

前往Jenkins管理頁面的[System]頁面,找到[SonarQube servers]區塊。
[Name] - 輸入SonarQube server的名稱(任意命名),例如"SonarQube";
[Server URL] - 輸入SonarQube server的URL位址。本範例Jenkins與SonarQube server在同一台機器,所以是http:localhost:9000
其餘欄位保持預設,點選最下方的[Save]儲存離開。




設定SonarQube Scanner installations

前往Jenkins管理頁面的[Tools]頁面,找到[SonarQube Scanner installations]區塊,然後點選[SonarQube Scanner installations]按鈕展開。
[Name] - 輸入SonarScanner的名稱(任意命名),例如"SonarScanner";
[SONAR_RUNNER_HOME] - 輸入SonarScanner的安裝目錄,範例為/usr/local/sonarqube/sonar-scanner-5.0.1.3006-linux
[Install automatically] - 取消勾選。




Project設定

前往project的設定頁面,點選[Add build step],選擇[Execute SonarQube Scanner]。



在[Analysis properties]填入SonarQube相關屬性,例如:

sonar.projectKey=demo
sonar.sources=.
sonar.exclusions=**/*_test.go
sonar.test.inclusions =**/*_test.go
sonar.go.coverage.reportPaths =coverage.out
sonar.login=sqp_e0dded478a441c4a196ef3bdfd502011421b6252
sonar.projectBaseDir=/var/lib/jenkins/workspace/go-demo
sonar.language=go



完成以上設定後,Jenkins在建置此專案時便會進行掃描並將結果送到SonarQube的專案中,查看建置log可以看到以下調用SonarScanner的訊息。

[go-demo] $ /usr/local/sonarqube/sonar-scanner-5.0.1.3006-linux/bin/sonar-scanner -Dsonar.host.url=http://localhost:9000 -Dsonar.projectKey=demo -Dsonar.language=go -Dsonar.login=sqp_e0dded478a441c4a196ef3bdfd502011421b6252 -Dsonar.projectBaseDir=/var/lib/jenkins/workspace/go-demo -Dsonar.go.coverage.reportPaths=coverage.out -Dsonar.sources=. -Dsonar.test.inclusions=**/*_test.go -Dsonar.exclusions=**/*_test.go
INFO: Scanner configuration file: /usr/local/sonarqube/sonar-scanner-5.0.1.3006-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 5.0.1.3006
...


沒有留言:

AdSense