Jenkins相關研究1

Sonarqube相關串接(Demo用途)

ZONGRU Li
Jun 13, 2022

參考YT影片(LINK)與Dockerhub的官方Image頁面(LINK)

正常安裝可以參照安裝需求解說頁(LINK)

正規方式應該是另外建立DB來儲存Sonarqube資料

在文件內有相關指引推薦的DB種類:

LINK

但是我這邊只是Demo,所以使用Dockerhub上的Image(LINK)

過程會使用簡單的H2 DB來演示(不適合正式環境使用):

以下就針對Demo的Container相關建立解說

我的環境是:

首先不論這個Demo的Container版還是一般的解說都有這部分:

LINK
#依據上述執行以下:
sudo sysctl -w vm.max_map_count=524288
sudo sysctl -w fs.file-max=131072
sudo ulimit -n 131072
sudo ulimit -u 8192

接著看到以下連結:

進入到官方解說頁:

LINK
#參考如上指令執行:
sudo podman run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest

順利載完image後:

然後在防火牆設定都有開的情況下進入 →http://localhost:9000

依據解說登入的帳密如下:

然後開始改改帳密:

然後進入到首頁:

接著參照Jenkins官方的YT影片來實作兩邊串接:

過程我試試安裝但是不重啟:

之後便可以見到:

然後填入:

去到SonarQube Web那邊操作:

然後把這個Token建立為Jenkins的憑證:

之後回頭填入:

在來就是建立簡單的Demo的Jenkins Job(Pipeline):

這邊沒啥特別的,就是引入一個Java專案來測試:

用簡單的Spring Restful Maven專案就可以掃,只是要打包到有class目錄

所以要執行到mvn package動作才行,相關pipeline語法如下

成功後點擊SonarQube左上角:

就會看到:

接著點:

這個就是剛剛在SonarQube建立的Token名子,所以名子不要亂取...

然後看到一切都PASSED:

看看怎樣會掛

加入:

執行Jenkins Job看到正常:

但是到Sonarqube上面看到:

接著在剛剛的hello.java我先不要static main,留下:

加入測試Code:

然後再一次測試看看:

然後看到一些滿好的建議:

我先就移除剛剛加入的這些程式與測試Code

因為上述看起來就因為加入了hello.java所以對應的測試Code也要寫很完整

最後執行後就過了:

經測試,以下這種Java Code會過:

對應測試Code:

最後隨便亂測結果:

點上圖左邊紅框處就會看到:

另外後來發現這樣的pipeline也可以:

如上就是把package換成verify,也能夠正常scan

參考Maven官方doc:

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet